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