From f3759f209cce1b40c283e844868618ce12242f3a Mon Sep 17 00:00:00 2001 From: Henry Fredrick Schreiner <henry.fredrick.schreiner@cern.ch> Date: Thu, 22 Mar 2018 11:36:31 +0100 Subject: [PATCH] Using Minuit2_SOURCE_DIR, standalone and travis fixes --- .travis.yml | 5 ++--- math/minuit2/.ci/make_and_test.sh | 14 ++++++++++++++ math/minuit2/copy_standalone.cmake | 22 +++++++++++++--------- math/minuit2/src/CMakeLists.txt | 4 ++-- math/minuit2/src/math/CMakeLists.txt | 10 +++++----- 5 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 math/minuit2/.ci/make_and_test.sh diff --git a/.travis.yml b/.travis.yml index ea297724b47..affb930ab85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -68,12 +68,11 @@ matrix: apt: sources: *sources packages: ['clang-3.9', 'libstdc++-6-dev'] - compiler: clang + compiler: clang script: - export CC=clang-3.9 - export CXX=clang++-3.9 - - cd math/minuit2 - - .ci/build_and_test.sh + - cd math/minuit2 && .ci/make_and_test.sh allow_failures: # clang-tidy-modernize is still experimental diff --git a/math/minuit2/.ci/make_and_test.sh b/math/minuit2/.ci/make_and_test.sh new file mode 100644 index 00000000000..2d2ecb2fb3d --- /dev/null +++ b/math/minuit2/.ci/make_and_test.sh @@ -0,0 +1,14 @@ +# This is run by the CI system from the main Minuit2 directory + +mkdir build +cd build +cmake .. -Dminuit2-standalone=OFF -DCMAKE_INSTALL_PREFIX=install +make -j2 +make test +make install +make clean + +cmake .. -Dminuit2-standalone=ON -DCMAKE_INSTALL_PREFIX=install +make -j2 +make test +make purge diff --git a/math/minuit2/copy_standalone.cmake b/math/minuit2/copy_standalone.cmake index bd2a3761090..271ed23c629 100644 --- a/math/minuit2/copy_standalone.cmake +++ b/math/minuit2/copy_standalone.cmake @@ -62,21 +62,25 @@ function(COPY_STANDALONE) if(NOT COPY_STANDALONE_FILES) message(FATAL_ERROR "copy_standalone requires files to work on") endif() + + # Get and normalize path to new directory + set(NEW_DIR_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_DESTINATION}") + get_filename_component(NEW_DIR_FULL "${NEW_DIR_FULL}" ABSOLUTE) + # Keep track of all files listed set(FILENAMES "") + # Loop over all filenames given foreach(FILENAME ${COPY_STANDALONE_FILES}) - if(minuit2-inroot) - # All paths are relative to master directory - set(ORIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_SOURCE}/${FILENAME}") - set(NEW_DIR_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_DESTINATION}") - set(NEW_FILE "${NEW_DIR_FULL}/${FILENAME}") + # All paths are relative to master directory + set(ORIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${COPY_STANDALONE_SOURCE}/${FILENAME}") + set(NEW_FILE "${NEW_DIR_FULL}/${FILENAME}") - # Normalize paths - get_filename_component(ORIG_FILE "${ORIG_FILE}" ABSOLUTE) - get_filename_component(NEW_DIR_FULL "${NEW_DIR_FULL}" ABSOLUTE) - get_filename_component(NEW_FILE "${NEW_FILE}" ABSOLUTE) + # Normalize paths + get_filename_component(ORIG_FILE "${ORIG_FILE}" ABSOLUTE) + get_filename_component(NEW_FILE "${NEW_FILE}" ABSOLUTE) + if(minuit2-inroot) # Error if file to copy is missing if(NOT EXISTS "${ORIG_FILE}") message(FATAL_ERROR "The file ${ORIG_FILE} does not exist and minuit2-inroot was set to ON") diff --git a/math/minuit2/src/CMakeLists.txt b/math/minuit2/src/CMakeLists.txt index 68ca6cb2bc4..5226f909371 100644 --- a/math/minuit2/src/CMakeLists.txt +++ b/math/minuit2/src/CMakeLists.txt @@ -190,7 +190,7 @@ set(MINUIT2_SOURCES mnxerbla.cxx ) -prepend_path(MINUIT2_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/../inc/Minuit2" ${MINUIT2_HEADERS}) +prepend_path(MINUIT2_HEADERS "${Minuit2_SOURCE_DIR}/inc/Minuit2" ${MINUIT2_HEADERS}) prepend_path(MINUIT2_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" ${MINUIT2_SOURCES}) add_library(Minuit2 @@ -204,7 +204,7 @@ add_library(Minuit2::Minuit2 ALIAS Minuit2) target_include_directories( Minuit2 PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../inc> + $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/inc> $<INSTALL_INTERFACE:include/Minuit2> ) diff --git a/math/minuit2/src/math/CMakeLists.txt b/math/minuit2/src/math/CMakeLists.txt index ae02517e112..26ec8be8750 100644 --- a/math/minuit2/src/math/CMakeLists.txt +++ b/math/minuit2/src/math/CMakeLists.txt @@ -23,13 +23,13 @@ set(MATH_SOURCES MinimizerOptions.cxx ) -copy_standalone(SOURCE ../../../../math/mathcore/inc/Fit DESTINATION ../../inc/Fit +copy_standalone(SOURCE ../../../mathcore/inc/Fit DESTINATION ../../inc/Fit OUTPUT FIT_HEADERS FILES ${FIT_HEADERS}) -copy_standalone(SOURCE ../../../../math/mathcore/inc/Math DESTINATION ../../inc/Math +copy_standalone(SOURCE ../../../mathcore/inc/Math DESTINATION ../../inc/Math OUTPUT MATH_HEADERS FILES ${MATH_HEADERS}) -copy_standalone(SOURCE ../../../../math/mathcore/src DESTINATION . +copy_standalone(SOURCE ../../../mathcore/src DESTINATION . OUTPUT MATH_SOURCES FILES ${MATH_SOURCES}) @@ -47,7 +47,7 @@ add_library(Minuit2::Math ALIAS Math) target_include_directories( Math PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../inc> + $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/inc> $<INSTALL_INTERFACE:include/Minuit2> ) @@ -56,7 +56,7 @@ if(minuit2-inroot AND NOT minuit2-standalone) target_include_directories( Math PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../../../math/mathcore/inc> + $<BUILD_INTERFACE:${Minuit2_SOURCE_DIR}/../mathcore/inc> ) endif() -- GitLab