diff --git a/CMakeLists.txt b/CMakeLists.txt index 716876e490..ab1aa7c1ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,10 @@ IF(BUILD_CXX) ADD_DEPENDENCIES(${PROJECT_NAME}Proto Cbc) ENDIF() + IF(NOT GLOG_FOUND) + ADD_DEPENDENCIES(${PROJECT_NAME}Proto GLOG) + ENDIF() + SET_TARGET_PROPERTIES(${PROJECT_NAME}Proto PROPERTIES POSITION_INDEPENDENT_CODE ON) SET(SUBTARGETS "") diff --git a/cmake/external/gflags.cmake b/cmake/external/gflags.cmake index 1dc42a871a..7eb49cfad1 100644 --- a/cmake/external/gflags.cmake +++ b/cmake/external/gflags.cmake @@ -22,5 +22,6 @@ ExternalProject_Add(gflags_project ADD_LIBRARY(gflags STATIC IMPORTED) SET_PROPERTY(TARGET gflags PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/gflags_project/src/gflags/lib/libgflags.a) +ADD_DEPENDENCIES(gflags gflags_project) SET(gflags_LIBRARIES "") LIST(APPEND gflags_LIBRARIES gflags) diff --git a/cmake/external/glog.cmake b/cmake/external/glog.cmake index a50b767db3..1a697b29f0 100644 --- a/cmake/external/glog.cmake +++ b/cmake/external/glog.cmake @@ -2,18 +2,25 @@ SET(GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/) LIST(APPEND GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/src/) SET(GLOG_URL https://github.com/google/glog) -ExternalProject_Add(Glog_project - PREFIX Glog +IF(NOT gflags_FOUND) + ExternalProject_Get_Property(gflags_project SOURCE_DIR) + SET(GLOG_EXTRA_ARGS "-DCMAKE_PREFIX_PATH=${SOURCE_DIR}") +ENDIF() + +ExternalProject_Add(GLOG_project + PREFIX GLOG GIT_REPOSITORY ${GLOG_URL} GIT_TAG "v${GLOG_VERSION}" DOWNLOAD_DIR "${DOWNLOAD_LOCATION}" UPDATE_COMMAND "" + PATCH_COMMAND git am -3 ${CMAKE_SOURCE_DIR}/patches/glog_includedir_fix.patch BUILD_IN_SOURCE 1 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog CONFIGURE_COMMAND ${CMAKE_COMMAND} + -DWITH_GFLAGS=ON -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON - ${Glogs_ADDITIONAL_CMAKE_OPTIONS} + ${GLOG_EXTRA_ARGS} INSTALL_COMMAND "" CMAKE_CACHE_ARGS -DCMAKE_BUILD_TYPE:STRING=Release @@ -21,10 +28,11 @@ ExternalProject_Add(Glog_project -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON) IF(NOT gflags_FOUND) - ADD_DEPENDENCIES(Glog_project gflags_project) + ADD_DEPENDENCIES(GLOG_project gflags_project) ENDIF() ADD_LIBRARY(GLOG STATIC IMPORTED) SET_PROPERTY(TARGET GLOG PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/glog_project/src/glog/libglog.a) +ADD_DEPENDENCIES(GLOG GLOG_project) SET(GLOG_LIBRARIES "") LIST(APPEND GLOG_LIBRARIES GLOG)