set(HAL_VERSION 9da3fa0b6511765b83409a1804753e4b46ab81a7) set(HAL_SRC_URL "https://github.com/DanielWielanek/HAL.git") set(HAL_DESTDIR "${CMAKE_BINARY_DIR}/external/HAL-prefix") list(APPEND HAL_LIB_LIST "HalAna" "HalCut" "HalData" "HalFeatures" "HalFemto") list(APPEND HAL_LIB_LIST "HalFlow" "HalFluct" "HalSpectra" "HalFair" "HalQA") download_project_if_needed(PROJECT Hal_source GIT_REPOSITORY ${HAL_SRC_URL} GIT_TAG ${HAL_VERSION} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Hal PATCH_COMMAND "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/Hal.patch" ) If(ProjectUpdated) File(REMOVE_RECURSE ${HAL_DESTDIR}) Message("Hal source directory was changed so build directory was deleted") EndIf() If(USE_DIFFERENT_COMPILER) Set(EXTRA_ARGS "-DUSE_DIFFERENT_COMPILER=TRUE") Else() Set(EXTRA_ARGS "") EndIf() execute_process(COMMAND gsl-config --prefix OUTPUT_VARIABLE GSLPATH OUTPUT_STRIP_TRAILING_WHITESPACE) message(WARNING "GSL PATH ${GSLPATH}") ExternalProject_Add(HAL BUILD_IN_SOURCE 0 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Hal BUILD_BYPRODUCTS ${HAL_LIBRARY} LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} -DROOTSYS=${SIMPATH} -DSIMPATH=${SIMPATH} -DFAIRROOTPATH=${FAIRROOTPATH} -DGSL_DIR=${GSLPATH} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo "${EXTRA_ARGS}" INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install ) foreach(HAL_LIB_LOCAL ${HAL_LIB_LIST}) add_library(${HAL_LIB_LOCAL} SHARED IMPORTED GLOBAL) set_target_properties(${HAL_LIB_LOCAL} PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${HAL_LIB_LOCAL}${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/include) add_dependencies(${HAL_LIB_LOCAL} HAL) endforeach() #set(Hal_LIBRARIES HalFeatures PARENT_SCOPE) #set(Hal_LIB_DIR ${CMAKE_BINARY_DIR}/lib PARENT_SCOPE) set(Hal_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include" PARENT_SCOPE) set(Hal_FOUND TRUE PARENT_SCOPE) foreach(LIB_NAME ${HAL_LIB_LIST}) if(APPLE) Install( FILES "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.0${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.1${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_BINARY_DIR}/lib/G__${LIB_NAME}Dict_rdict.pcm" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.rootmap" DESTINATION lib) else() Install( FILES "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.0" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.1" "${CMAKE_BINARY_DIR}/lib/G__${LIB_NAME}Dict_rdict.pcm" "${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.rootmap" DESTINATION lib) endif() endforeach(LIB_NAME) ## addditional stuff Install(FILES ${CMAKE_BINARY_DIR}/bin/hal-report ${CMAKE_BINARY_DIR}/bin/hal-merger ${CMAKE_BINARY_DIR}/bin/hal-jobs ${CMAKE_BINARY_DIR}/bin/hal-corrfit PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ DESTINATION bin ) Install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Hal/features/hal_plus DESTINATION share ) Install(DIRECTORY ${CMAKE_BINARY_DIR}/include/Hal DESTINATION include )