From d15004af0b988e82b838f3e45658719e925b63a6 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 3 Aug 2019 09:39:45 +1000 Subject: [PATCH] Moving some externals from build directory. --- .gitignore | 1 + CMakeLists.txt | 16 ++++++++++------ app/commsdsl2comms/test/CMakeLists.txt | 20 ++++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 70f9f385..401283da 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ build* CMakeLists.txt.user* .vscode *creator.user +externals* # Prerequisites *.d diff --git a/CMakeLists.txt b/CMakeLists.txt index ea781b80..1670a3e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,7 @@ if ((UNIX) AND (NOT COMMSDSL_NO_CCACHE)) endif(CCACHE_FOUND) endif () +set (EXTERNALS_DIR "${CMAKE_SOURCE_DIR}/externals") while (TRUE) if (COMMSDSL_NO_TESTS) break () @@ -87,8 +88,8 @@ while (TRUE) set (repo_name "cxxtest") set (repo_tag "4.4") set (repo_url "https://github.com/CxxTest/cxxtest.git") - set (stamp "${CMAKE_CURRENT_BINARY_DIR}/${repo_name}.stamp") - if ((EXISTS ${stamp}) AND (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${repo_name}")) + set (stamp "${EXTERNALS_DIR}/cxxtest/cxxtest.stamp") + if (EXISTS ${stamp}) execute_process ( COMMAND ${GIT_EXECUTABLE} checkout ${repo_tag} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${repo_name} @@ -97,11 +98,14 @@ while (TRUE) execute_process ( COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/${repo_name}" ) + + execute_process ( + COMMAND ${CMAKE_COMMAND} -E make_directory "${EXTERNALS_DIR}" + ) execute_process ( - COMMAND - ${GIT_EXECUTABLE} clone -b ${repo_tag} --depth 1 ${repo_url} ${CMAKE_CURRENT_BINARY_DIR}/${repo_name} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${GIT_EXECUTABLE} clone -b ${repo_tag} --depth 1 ${repo_url} + WORKING_DIRECTORY ${EXTERNALS_DIR} RESULT_VARIABLE git_result ) @@ -115,7 +119,7 @@ while (TRUE) ) endif () - set (CXXTEST_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/cxxtest") + set (CXXTEST_INCLUDE_DIR "${EXTERNALS_DIR}/cxxtest") set (CXXTEST_PYTHON_TESTGEN_EXECUTABLE "${CXXTEST_INCLUDE_DIR}/bin/cxxtestgen") find_package (CxxTest) diff --git a/app/commsdsl2comms/test/CMakeLists.txt b/app/commsdsl2comms/test/CMakeLists.txt index 20dfd016..2ac3177c 100644 --- a/app/commsdsl2comms/test/CMakeLists.txt +++ b/app/commsdsl2comms/test/CMakeLists.txt @@ -116,15 +116,16 @@ endfunction () macro (cc_external) set (CC_EXTERNAL TRUE) set (cc_main_dir "${CMAKE_BINARY_DIR}/comms_champion") - set (cc_src_dir "${cc_main_dir}/src") + set (cc_src_dir "${EXTERNALS_DIR}/comms_champion") set (cc_bin_dir "${cc_main_dir}/build") set (COMMS_INSTALL_DIR "${cc_main_dir}/install") set (cc_qt_dir_opt) + set (cc_repo "https://github.com/arobenko/comms_champion.git") find_package (Git REQUIRED) if (EXISTS "${cc_src_dir}/.git") execute_process ( - COMMAND ${GIT_EXECUTABLE} fetch --depth 1 + COMMAND ${GIT_EXECUTABLE} pull WORKING_DIRECTORY ${cc_src_dir} ) @@ -137,10 +138,13 @@ macro (cc_external) COMMAND ${CMAKE_COMMAND} -E remove_directory "${cc_src_dir}" ) + execute_process ( + COMMAND ${CMAKE_COMMAND} -E make_directory "${cc_src_dir}" + ) + execute_process ( COMMAND - ${GIT_EXECUTABLE} clone -b ${CC_TAG} --depth 1 https://github.com/arobenko/comms_champion.git - ${cc_src_dir} + ${GIT_EXECUTABLE} clone -b ${CC_TAG} --depth 1 ${cc_repo} ${cc_src_dir} RESULT_VARIABLE git_result ) @@ -157,14 +161,14 @@ macro (cc_external) set (cc_qt_dir_opt -DCC_QT_DIR=${COMMSDSL_QT_DIR}) endif () - #set (cc_libs_only_opt "-DCC_COMMS_LIB_ONLY=ON") - #if (UNIX) - set (cc_libs_only_opt "-DCC_LIBS_ONLY=ON") - #endif () + set (cc_libs_only_opt "-DCC_LIBS_ONLY=ON") ExternalProject_Add( "${CC_EXTERNAL_TGT}" PREFIX "${cc_main_dir}" + STAMP_DIR "${cc_main_dir}" + GIT_REPOSITORY "${cc_repo}" + GIT_TAG "${CC_TAG}" SOURCE_DIR "${cc_src_dir}" BINARY_DIR "${cc_bin_dir}" INSTALL_DIR "${COMMS_INSTALL_DIR}"