1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
############################################################################
# CMakeLists.txt file for building libBornAgainSim
############################################################################
set(component Base)
set(lib BornAgain${component})
# --- source and include files ---
file(GLOB source_files */*.cpp)
file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */*.h)
# --- make the library ---
add_library(${lib} SHARED)
MakeLib(${lib} "${CMAKE_CURRENT_BINARY_DIR}/Wrap" "${source_files}" "${include_files}")
# --- external dependences ---
target_link_libraries(${lib}
PUBLIC
${GSL_LIBRARIES}
${FFTW3_LIBRARIES}
)
target_include_directories(${lib}
PUBLIC
${CMAKE_SOURCE_DIR}
${BUILD_INC_DIR}
)
target_include_directories(${lib} SYSTEM
PUBLIC
${LibHeinz_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
# the following needed for Mac and Win, even if they are implied under Linux
${GSL_INCLUDE_DIR}
${FFTW3_INCLUDE_DIR}
)
# g++ versions less than 9.1 need to link against libstdc++fs
# if std::filesystem is used
if(GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.1)
target_link_libraries(${lib} PRIVATE stdc++fs)
endif()
# the same applies to clang versions less than 9.0: they need to link
# against libstdc++fs or libc++fs if std::filesystem is used
if(CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
if(LINUX)
target_link_libraries(${lib} PRIVATE stdc++fs)
else()
target_link_libraries(${lib} PRIVATE c++fs)
endif()
endif()
if(WIN32)
target_compile_definitions(${lib} PRIVATE -DBA_BASE_BUILD_DLL)
endif()
|