diff --git a/.travis.yml b/.travis.yml index ea297724b47cbfd364ee9cc377bee007861a5ee6..affb930ab85d1b08d130be087305a3d9097c33dd 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 0000000000000000000000000000000000000000..2d2ecb2fb3d1853c1a90eff16c0ae23d38d5651c --- /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 bd2a376109097f9a7f95e388f2b5a11dd7ea832b..271ed23c629fc706804735a97cb629a76a8e19f4 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 68ca6cb2bc492f83e1451caac594a336a6697bb9..5226f90937156a9f9e7e0efb0fb76fa358693786 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 ae02517e11240c971fe5af6d6f25cbb46c4d8a98..26ec8be8750d3fb4ca3b6474f08e34de9fa12e6b 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()