############################################################################
# CMakeLists.txt file for building libBornAgainDevice
############################################################################

set(component Device)
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 dependencies ---

target_link_libraries(${lib}
    PUBLIC
    BornAgainBase
    BornAgainFit
    BornAgainParam
    BornAgainSample
    BornAgainResample
    ${CMAKE_THREAD_LIBS_INIT}
    ${tspectrum_LIBRARY}
    ${ZLIB_LIBRARIES}
    ${BZIP2_LIBRARIES}
)
if(BORNAGAIN_PYTHON)
    target_link_libraries(${lib} PUBLIC BornAgainPyCore)
endif()

target_include_directories(${lib}
    PUBLIC
    ${CMAKE_SOURCE_DIR}
)

target_include_directories(${lib} SYSTEM
    PUBLIC
    ${tspectrum_INCLUDE_DIR}
    ${ZLIB_INCLUDE_DIRS}
    ${BZIP2_INCLUDE_DIRS}
)

if(BA_TIFF_SUPPORT)
    target_link_libraries(${lib} PUBLIC ${TIFF_LIBRARIES})
    target_include_directories(${lib} PUBLIC ${TIFF_INCLUDE_DIR})
    target_compile_definitions(${lib} PUBLIC -DBA_TIFF_SUPPORT)
endif()

if(WIN32)
    target_compile_definitions(${lib} PRIVATE -DBA_DEVICE_BUILD_DLL)
endif()
