From 7fdb91da481850479907cf261f18e96750d9745c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=A2=85=ED=98=84/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Thu, 10 May 2018 10:37:45 +0900 Subject: [PATCH] Add ExternalProjectTools (#213) This commit introduces ExternalProjectTools module which allows users to import external CMake projects in a systematic way. Signed-off-by: Jonghyun Park --- cmake/packages/ExternalProjectToolsConfig.cmake | 5 +++++ cmake/packages/GFlagsConfig.cmake | 3 ++- cmake/packages/GTestConfig.cmake | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cmake/packages/ExternalProjectToolsConfig.cmake diff --git a/cmake/packages/ExternalProjectToolsConfig.cmake b/cmake/packages/ExternalProjectToolsConfig.cmake new file mode 100644 index 0000000..7dde65f --- /dev/null +++ b/cmake/packages/ExternalProjectToolsConfig.cmake @@ -0,0 +1,5 @@ +macro(add_extdirectory DIR TAG) + add_subdirectory(${DIR} "${CMAKE_BINARY_DIR}/externals/${TAG}") +endmacro(add_extdirectory) + +set(ExternalProjectTools_FOUND TRUE) diff --git a/cmake/packages/GFlagsConfig.cmake b/cmake/packages/GFlagsConfig.cmake index f93c784..b4545f5 100644 --- a/cmake/packages/GFlagsConfig.cmake +++ b/cmake/packages/GFlagsConfig.cmake @@ -7,11 +7,12 @@ function(_GFlags_import) nncc_find_package(GFlagsSource QUIET) if(GFlagsSource_FOUND) + nncc_find_package(ExternalProjectTools REQUIRED) # build static multi-thread library set(GFLAGS_BUILD_STATIC_LIB On) set(GFLAGS_BUILD_gflags_LIB On) set(GFLAGS_BUILD_gflags_nothreads_LIB Off) - add_subdirectory(${GFLAGS_SOURCE_DIR} external/gflags) + add_extdirectory(${GFLAGS_SOURCE_DIR} gflags) else(GFlagsSource_FOUND) set(GFLAGS_ROOT_DIR "" CACHE PATH "Folder contains GFlags") find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h PATHS ${GFLAGS_ROOT_DIR}) diff --git a/cmake/packages/GTestConfig.cmake b/cmake/packages/GTestConfig.cmake index f868727..6698c92 100644 --- a/cmake/packages/GTestConfig.cmake +++ b/cmake/packages/GTestConfig.cmake @@ -1,5 +1,6 @@ if(${BUILD_GTEST}) nncc_find_package(ExternalSourceTools REQUIRED) + nncc_find_package(ExternalProjectTools REQUIRED) nncc_find_package(OptionTools REQUIRED) envoption(GTEST_URL https://github.com/google/googletest/archive/release-1.8.0.tar.gz) @@ -7,7 +8,7 @@ if(${BUILD_GTEST}) ExternalSource_Download(GTEST ${GTEST_URL}) if(NOT TARGET gtest_main) - add_subdirectory(${GTEST_SOURCE_DIR} externals/gtest) + add_extdirectory(${GTEST_SOURCE_DIR} gtest) endif(NOT TARGET gtest_main) set(GTest_FOUND TRUE) -- 2.7.4