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