glog.cmake 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. INCLUDE(ExternalProject)
  15. SET(GLOG_PREFIX_DIR ${THIRD_PARTY_PATH}/glog)
  16. SET(GLOG_INSTALL_DIR ${THIRD_PARTY_PATH}/install/glog)
  17. SET(GLOG_INCLUDE_DIR "${GLOG_INSTALL_DIR}/include" CACHE PATH "glog include directory." FORCE)
  18. SET(GLOG_REPOSITORY ${GIT_URL}/google/glog.git)
  19. SET(GLOG_TAG v0.4.0)
  20. IF(WIN32)
  21. SET(GLOG_LIBRARIES "${GLOG_INSTALL_DIR}/lib/glog.lib" CACHE FILEPATH "glog library." FORCE)
  22. SET(GLOG_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267 /wd4530")
  23. add_definitions("/DGOOGLE_GLOG_DLL_DECL=")
  24. ELSE(WIN32)
  25. SET(GLOG_LIBRARIES "${GLOG_INSTALL_DIR}/lib/libglog.a" CACHE FILEPATH "glog library." FORCE)
  26. SET(GLOG_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
  27. ENDIF(WIN32)
  28. INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
  29. ExternalProject_Add(
  30. extern_glog
  31. ${EXTERNAL_PROJECT_LOG_ARGS}
  32. ${SHALLOW_CLONE}
  33. GIT_REPOSITORY ${GLOG_REPOSITORY}
  34. GIT_TAG ${GLOG_TAG}
  35. DEPENDS gflags
  36. PREFIX ${GLOG_PREFIX_DIR}
  37. UPDATE_COMMAND ""
  38. CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
  39. -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
  40. -DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS}
  41. -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
  42. -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
  43. -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
  44. -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
  45. -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
  46. -DCMAKE_INSTALL_PREFIX=${GLOG_INSTALL_DIR}
  47. -DCMAKE_INSTALL_LIBDIR=${GLOG_INSTALL_DIR}/lib
  48. -DCMAKE_POSITION_INDEPENDENT_CODE=ON
  49. -DWITH_GFLAGS=OFF
  50. -DBUILD_TESTING=OFF
  51. -DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE}
  52. ${EXTERNAL_OPTIONAL_ARGS}
  53. CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${GLOG_INSTALL_DIR}
  54. -DCMAKE_INSTALL_LIBDIR:PATH=${GLOG_INSTALL_DIR}/lib
  55. -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
  56. -DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}
  57. BUILD_BYPRODUCTS ${GLOG_LIBRARIES}
  58. )
  59. ADD_LIBRARY(glog STATIC IMPORTED GLOBAL)
  60. SET_PROPERTY(TARGET glog PROPERTY IMPORTED_LOCATION ${GLOG_LIBRARIES})
  61. ADD_DEPENDENCIES(glog extern_glog gflags)
  62. LINK_LIBRARIES(glog)