From 13d77cd3dab8bc254ccafa906403ce43a9548948 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Mon, 5 Oct 2020 22:37:25 +0200 Subject: [PATCH] CMake Fit & Core: group Py-related clauses --- Core/CMakeLists.txt | 33 ++++++------- Fit/CMakeLists.txt | 32 ++++++------- cmake/BornAgain/SwigLib.cmake | 88 ----------------------------------- 3 files changed, 29 insertions(+), 124 deletions(-) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 7e35d338775..96fefc09ced 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -17,6 +17,16 @@ if(${Cerf_IS_CPP}) string(APPEND CMAKE_CXX_FLAGS " -DCERF_AS_CPP=ON") endif() +if(BORNAGAIN_PYTHON) + list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") +endif() + +# --- making library --- + +add_library(${lib} SHARED ${source_files}) +set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) +set(${lib}_LIBRARY_TYPE SHARED) + if(BORNAGAIN_PYTHON) if(CONFIGURE_BINDINGS) @@ -79,24 +89,17 @@ if(BORNAGAIN_PYTHON) -Wno-deprecated-declarations") endif() - list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") - -endif(BORNAGAIN_PYTHON) - -# --- making library --- + add_dependencies(${lib} ${lib}_python) -add_library(${lib} SHARED ${source_files}) -set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) -set(${lib}_LIBRARY_TYPE SHARED) + target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) + target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) + target_link_libraries(${lib} ${Python3_LIBRARIES}) -if(BORNAGAIN_PYTHON) - add_dependencies(${lib} ${lib}_python) -endif() +endif(BORNAGAIN_PYTHON) # exposing library name and list of include directories outside set(${lib}_LIBRARY ${lib} PARENT_SCOPE) - if(BORNAGAIN_PYTHON) add_dependencies(${lib} swig_runtime) endif() @@ -132,12 +135,6 @@ if(BORNAGAIN_MPI) target_link_libraries(${lib} ${MPI_LIBRARIES}) endif() -if(BORNAGAIN_PYTHON) - target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) - target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) - target_link_libraries(${lib} ${Python3_LIBRARIES}) -endif() - if(APPLE AND BORNAGAIN_APPLE_BUNDLE) set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks") set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags}) diff --git a/Fit/CMakeLists.txt b/Fit/CMakeLists.txt index ad34b3d21cc..d2b53a8e9bc 100644 --- a/Fit/CMakeLists.txt +++ b/Fit/CMakeLists.txt @@ -11,8 +11,16 @@ file(GLOB source_files */*.cpp) file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */*.h) if(BORNAGAIN_PYTHON) + list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") +endif() + +# --- making library --- + +add_library(${lib} SHARED ${source_files}) +set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) +set(${lib}_LIBRARY_TYPE SHARED) - file(MAKE_DIRECTORY ${AUTO_DIR}) +if(BORNAGAIN_PYTHON) if(CONFIGURE_BINDINGS) @@ -74,19 +82,13 @@ if(BORNAGAIN_PYTHON) -Wno-deprecated-declarations") endif() - list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") - -endif(BORNAGAIN_PYTHON) - -# --- making library --- + add_dependencies(${lib} ${lib}_python) -add_library(${lib} SHARED ${source_files}) -set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) -set(${lib}_LIBRARY_TYPE SHARED) + target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) + target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) + target_link_libraries(${lib} ${Python3_LIBRARIES}) -if(BORNAGAIN_PYTHON) - add_dependencies(${lib} ${lib}_python) -endif() +endif(BORNAGAIN_PYTHON) # exposing library name and list of include directories outside set(${lib}_LIBRARY ${lib} PARENT_SCOPE) @@ -98,12 +100,6 @@ target_include_directories(${lib} target_link_libraries(${lib} ${RootMinimizers_LIBRARY} ${Boost_LIBRARIES}) -if(BORNAGAIN_PYTHON) - target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) - target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) - target_link_libraries(${lib} ${Python3_LIBRARIES}) -endif() - if(APPLE AND BORNAGAIN_APPLE_BUNDLE) set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks") set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags}) diff --git a/cmake/BornAgain/SwigLib.cmake b/cmake/BornAgain/SwigLib.cmake index 2d4b008bbb5..c5e41f8997a 100644 --- a/cmake/BornAgain/SwigLib.cmake +++ b/cmake/BornAgain/SwigLib.cmake @@ -4,93 +4,5 @@ function(SwigLib name lib) return() endif() - file(MAKE_DIRECTORY ${AUTO_DIR}) - - if(CONFIGURE_BINDINGS) - - set(TMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/Wrap) - file(MAKE_DIRECTORY ${TMP_DIR}) - - GeneratePythonDocs(${AUTO_DIR}/doxygen${name}.i ${WRAP_DIR}/swig) - - set(swig_dependencies - ${WRAP_DIR}/swig/lib${lib}.i - ${WRAP_DIR}/swig/directors.i - ${WRAP_DIR}/swig/extend${name}.i - ${WRAP_DIR}/swig/ignores.i - ${WRAP_DIR}/swig/shared_pointers.i - ${WRAP_DIR}/swig/warnings.i - ) - foreach(FNAM ${swig_dependencies}) - if(NOT EXISTS ${FNAM}) - message(FATAL_ERROR "Could NOT find SWIG input ${FNAM}") - endif() - endforeach() - list(APPEND swig_dependencies ${AUTO_DIR}/doxygen${name}.i) - - set(SWIG_FLAGS "-c++;-python;-o;${AUTO_DIR}/lib${lib}_wrap.cpp;-outdir;${TMP_DIR}" - ";-I${CMAKE_SOURCE_DIR};-I${CMAKE_BINARY_DIR}/inc") - - add_custom_command( - OUTPUT ${AUTO_DIR}/lib${lib}.py - COMMAND ${Python3_EXECUTABLE} ${WRAP_DIR}/swig/tweaks.py - ${TMP_DIR}/lib${lib}.py - ${AUTO_DIR}/lib${lib}.py - DEPENDS ${TMP_DIR}/lib${lib}.py - ) - add_custom_command( - OUTPUT ${TMP_DIR}/lib${lib}.py - ${AUTO_DIR}/lib${lib}_wrap.h - ${AUTO_DIR}/lib${lib}_wrap.cpp - COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${WRAP_DIR}/swig/lib${lib}.i - DEPENDS ${swig_dependencies} ${include_files} - ) - - endif(CONFIGURE_BINDINGS) - - add_custom_target( - ${lib}_python - COMMAND ${CMAKE_COMMAND} - -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/lib${lib}.py - COMMAND ${CMAKE_COMMAND} - -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/bornagain/lib${lib}.py - DEPENDS ${AUTO_DIR}/lib${lib}.py - ) - add_dependencies(${lib} ${lib}_python) - - if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) - # suppress warnings from auto-generated code (last updated for Swig 4.0.1) - set_source_files_properties(${AUTO_DIR}/lib${lib}_wrap.cpp - PROPERTIES COMPILE_OPTIONS - "-Wno-unused-parameter;-Wno-missing-field-initializers;-Wno-sometimes-uninitialized;\ --Wno-deprecated-declarations") - endif() - - target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) - target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) - target_link_libraries(${lib} ${Python3_LIBRARIES}) - - install(FILES ${CMAKE_BINARY_DIR}/lib/lib${lib}.py - DESTINATION ${destination_lib} COMPONENT Libraries) - - if(WIN32) - add_custom_command( - TARGET ${lib} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}".pyd" - ) - install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}.pyd - DESTINATION ${destination_lib} COMPONENT Libraries) - add_custom_command( - TARGET ${lib} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}${libsuffix} - ) - endif() endfunction() -- GitLab