From 75f2c3dcfcf7d6fde4e23433096d661d3f1a5fd8 Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Thu, 13 Nov 2014 14:58:44 +0100 Subject: [PATCH] CMake: cleanup in libBornAgainFit --- Core/CMakeLists.txt | 3 ++- Fit/CMakeLists.txt | 57 ++++++++++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 6043d56811b..f6cdbccc12b 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -3,9 +3,10 @@ ############################################################################ set(library_name BornAgainCore) if(POLICY CMP0042) -cmake_policy(SET CMP0042 NEW) + cmake_policy(SET CMP0042 NEW) endif() + # --- source and include files --------- set(include_dirs ${CMAKE_CURRENT_SOURCE_DIR}/Algorithms/inc diff --git a/Fit/CMakeLists.txt b/Fit/CMakeLists.txt index d701136e8ac..deabacdc761 100644 --- a/Fit/CMakeLists.txt +++ b/Fit/CMakeLists.txt @@ -3,33 +3,34 @@ ############################################################################ set(library_name BornAgainFit) if(POLICY CMP0042) -cmake_policy(SET CMP0042 NEW) + cmake_policy(SET CMP0042 NEW) endif() -# source and include files + +# --- source and include files ------ set(include_dirs ${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/inc -# ${CMAKE_SOURCE_DIR}/ThirdParty/RootMinimizers/inc ) include_directories(${include_dirs}) -file(GLOB source_files +file(GLOB fitkernel_source_files "FitKernel/src/*.cpp" "FitKernel/src/*.cxx" ) -file(GLOB include_files +file(GLOB fitkernel_include_files "FitKernel/inc/*.h" ) # genetic minimizer only available if ROOT present if(NOT ROOT_FOUND) - list(REMOVE_ITEM source_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/src/ROOTGeneticMinimizer.cpp") - list(REMOVE_ITEM include_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/inc/ROOTGeneticMinimizer.h") -# list(REMOVE_ITEM source_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/src/GeneticMinimizer.cxx") -# list(REMOVE_ITEM include_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/inc/GeneticMinimizer.h") + list(REMOVE_ITEM fitkernel_source_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/src/ROOTGeneticMinimizer.cpp") + list(REMOVE_ITEM fitkernel_include_files "${CMAKE_CURRENT_SOURCE_DIR}/FitKernel/inc/ROOTGeneticMinimizer.h") endif() +set(source_files ${fitkernel_source_files}) +set(include_files ${fitkernel_include_files}) + if(BORNAGAIN_PYTHON) file(GLOB source_pythonapi "PythonAPI/src/*.cpp") list(APPEND source_files ${source_pythonapi}) @@ -38,18 +39,17 @@ if(BORNAGAIN_PYTHON) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/PythonAPI/inc - ) - include_directories( - # some Core PythonAPI is required too ${CMAKE_SOURCE_DIR}/Core/PythonAPI/inc ) endif() +# --- definitions --------- if(WIN32) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") endif() -# making library + +# --- making library --------- add_library( ${library_name} SHARED @@ -62,7 +62,7 @@ set(${library_name}_INCLUDE_DIRS ${include_dirs} PARENT_SCOPE) set(${library_name}_LIBRARY ${library_name} PARENT_SCOPE) -# --- dependencies --- +# --- dependencies --------- include_directories( ${BornAgainCore_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} @@ -70,6 +70,7 @@ include_directories( ${RootMinimizers_INCLUDE_DIRS} ${GSL_INCLUDE_DIR} ) + target_link_libraries( ${library_name} ${BornAgainCore_LIBRARY} @@ -78,18 +79,13 @@ target_link_libraries( ${GSL_LIBRARIES} ) - if(ROOT_FOUND) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAS_GENETIC_MINIMIZER") include_directories( ${ROOT_INCLUDE_DIR} ) -# target_link_libraries(${library_name} -# ${ROOT_LIBRARIES} -lGenetic -lTMVA -# ) target_link_libraries(${library_name} ${ROOT_LIBRARIES} -lTMVA -# -L${ROOT_LIBRARY_DIR} -lTMVA ) endif() @@ -110,19 +106,26 @@ if(WIN32 AND BORNAGAIN_PYTHON) ) endif() + # ----------------------------------------------- # installation # ----------------------------------------------- install (TARGETS ${library_name} DESTINATION ${destination_lib} COMPONENT Libraries) +install (FILES ${fitkernel_include_files} DESTINATION ${destination_include} COMPONENT Headers) -if(WIN32 AND BORNAGAIN_PYTHON) - install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}.pyd DESTINATION ${destination_lib} COMPONENT Libraries) - install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}.pyd DESTINATION ${destination_bin} COMPONENT Libraries) +if(WIN32) + if(BORNAGAIN_PYTHON) + ADD_CUSTOM_COMMAND( + TARGET ${library_name} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_BINARY_DIR}/bin/${libprefix}${library_name}${libsuffix} + ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}".pyd" + ) + + install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}.pyd DESTINATION ${destination_lib} COMPONENT Libraries) + install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}.pyd DESTINATION ${destination_bin} COMPONENT Libraries) + endif() endif() -# list of headers to install -file(GLOB include_files - "Factory/inc/*.h" -) -install (FILES ${include_files} DESTINATION ${destination_include} COMPONENT Headers) -- GitLab