project(Prism)

file(GLOB_RECURSE SRC_SOURCE src/**.cpp)



# static library
set(STATIC_LIBRARY ${PROJECT_NAME}-static)

add_library(${STATIC_LIBRARY} STATIC ${SRC_SOURCE})

target_compile_definitions(${STATIC_LIBRARY} PRIVATE PRISM_STATIC)

target_include_directories(${STATIC_LIBRARY} PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
set_target_properties(${STATIC_LIBRARY} PROPERTIES
        OUTPUT_NAME ${PROJECT_NAME}
        ARCHIVE_OUTPUT_NAME ${PROJECT_NAME}
)


# shared library
set(SHARED_LIBRARY ${PROJECT_NAME}-shared)

add_library(${SHARED_LIBRARY} SHARED ${SRC_SOURCE})

target_compile_definitions(${SHARED_LIBRARY} PRIVATE PRISM_SHARED BUILD_PRISM_DLL)

target_include_directories(${SHARED_LIBRARY} PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)

set_target_properties(${SHARED_LIBRARY} PROPERTIES
        OUTPUT_NAME ${PROJECT_NAME}d
        LIBRARY_OUTPUT_NAME ${PROJECT_NAME}d
)


# alias
add_library(Prism::static ALIAS Prism-static)
add_library(Prism::shared ALIAS Prism-shared)
add_library(Prism ALIAS Prism-shared)
