#
# This is CMakeLists for project: BitData
#
project(BitData)

# ${SRC} cmake file defines ${SOURCES} variable which holds all sources used during compilation
include_cmake(${SRC})

enable_all_warnings()
enable_warnings_as_errors()

add_library(BitData SHARED ${SOURCES} $<TARGET_OBJECTS:BitData_Objects>)

target_compile_definitions(BitData
    PRIVATE
        BITDATA_EXPORTS
    INTERFACE
        BITDATA_IMPORTS)


target_include_directories(BitData
    PRIVATE
        "${OPENIPC_ROOT}/Source/Public_Include"
        "${OPENIPC_ROOT}/Source/Foundation/BitData_Static")

set_target_properties(BitData PROPERTIES
                      OUTPUT_NAME BitData_${ARCHITECTURE_NAME}
                      FOLDER "/Foundation")

ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/BitData.def"
                   COMMAND ${PYTHON_EXECUTABLE} createdefifnewer.py ${CMAKE_CURRENT_BINARY_DIR}
                   COMMENT "Generating BitData.def"
                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                   DEPENDS "../../Public_Include/Foundation/BitData/BitData.h")

target_link_libraries(BitData PRIVATE IndexList
                                      CommonUtils
                                      InternalUtils
                                      ${CMAKE_DL_LIBS})

install(TARGETS BitData
        LIBRARY DESTINATION ${DPL_BIN_ROOT} COMPONENT openipc
        RUNTIME DESTINATION ${DPL_BIN_ROOT} COMPONENT openipc)

INSTALL_PDB(BitData)

if(CONFIG_SHIP_PLUGINSDK)
    install(TARGETS BitData
            ARCHIVE DESTINATION "${DPL_PROBEPLUGINSDK_LIBS}" COMPONENT probepluginsdk
            LIBRARY DESTINATION "${DPL_PROBEPLUGINSDK_LIBS}" COMPONENT probepluginsdk
            RUNTIME DESTINATION "${DPL_PROBEPLUGINSDK_LIBS}" COMPONENT probepluginsdk)

    INSTALL_PDB(BitData)
endif()
