RSE-Model/RSPModelLib/CMakeLists.txt
JackCarterSmith e10e74b8a1
Finished standard lib implement
> static and dynamic linking... Need proper dynamic config
> Standalone app basis... Need more rework
> CMake proper install
2022-08-12 22:19:57 +02:00

66 lines
2.1 KiB
CMake

# CMakeLists.txt
####################################################
# Written by JackCarterSmith, 2022
# This code is released under the RSE license.
####################################################
# General library configuration
if(DEFINED ENV{MS_COMPATIBLE})
set(CMAKE_GNUtoMS ON) # Enable compatibility level to exported libraries
endif()
include(CheckIncludeFile)
include(CheckCSourceCompiles)
# Define src/headers files
file(GLOB_RECURSE RSP_MOD_SOURCES ./src/*.c)
source_group("Source Files" FILES ${RSP_MOD_SOURCES})
file(GLOB RSP_PUBLIC_HRDS ./include/*.h)
set(RSP_PUBLIC_HRDS ${RSP_PUBLIC_HRDS} PARENT_SCOPE)
# Building instructions for RSE-Model
if(DEFINED ENV{CI})
set(CMAKE_BUILD_TYPE RELEASE)
endif()
# Declare the shared library instance
add_library(rsp-model-lib SHARED ${RSP_MOD_SOURCES})
set_property(TARGET rsp-model-lib PROPERTY C_STANDARD 90)
target_include_directories(rsp-model-lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
set_target_properties(rsp-model-lib PROPERTIES OUTPUT_NAME ${RSP_MODEL_LIB_NAME})
set_target_properties(rsp-model-lib PROPERTIES DEFINE_SYMBOL RSPMODEL_DLL)
if(MSVC)
# msvc does not append 'lib' - do it here to have consistent name
set_target_properties(rsp-model-lib PROPERTIES PREFIX "lib")
set_target_properties(rsp-model-lib PROPERTIES IMPORT_PREFIX "lib")
endif()
# Declare the static library instance
add_library(rsp-model-libstatic STATIC ${RSP_MOD_SOURCES})
set_property(TARGET rsp-model-libstatic PROPERTY C_STANDARD 90)
target_include_directories(rsp-model-libstatic PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
if(NOT MSVC)
set_target_properties(rsp-model-libstatic PROPERTIES OUTPUT_NAME "${RSP_MODEL_LIB_NAME}")
set_target_properties(rsp-model-libstatic PROPERTIES CLEAN_DIRECT_OUTPUT 1)
else()
set_target_properties(rsp-model-libstatic PROPERTIES OUTPUT_NAME "${RSP_MODEL_LIB_NAME}_static")
set_target_properties(rsp-model-libstatic PROPERTIES CLEAN_DIRECT_OUTPUT 1)
endif()
if(MSVC)
# msvc does not append 'lib' - do it here to have consistent name
set_target_properties(rsp-model-libstatic PROPERTIES PREFIX "lib")
set_target_properties(rsp-model-libstatic PROPERTIES IMPORT_PREFIX "lib")
endif()