68 lines
2.3 KiB
CMake
68 lines
2.3 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_TERRAIN_SOURCES ./src/*.c)
|
|
source_group("Source Files" FILES ${RSP_TERRAIN_SOURCES})
|
|
file(GLOB RSP_PUBLIC_HRDS ./include/*.h)
|
|
set(RSP_PUBLIC_HRDS ${RSP_PUBLIC_HRDS} PARENT_SCOPE)
|
|
|
|
|
|
# Building instructions for RSP-Terrain library
|
|
if(DEFINED ENV{CI})
|
|
set(CMAKE_BUILD_TYPE RELEASE)
|
|
endif()
|
|
|
|
|
|
# Declare the shared library instance
|
|
if(RSPTERRAIN_SHARED)
|
|
add_library(rsp-terrain-lib SHARED ${RSP_TERRAIN_SOURCES})
|
|
set_property(TARGET rsp-terrain-lib PROPERTY C_STANDARD 90)
|
|
|
|
target_include_directories(rsp-terrain-lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
set_target_properties(rsp-terrain-lib PROPERTIES OUTPUT_NAME ${RSP_TERRAIN_LIB_NAME})
|
|
set_target_properties(rsp-terrain-lib PROPERTIES DEFINE_SYMBOL RSPTERRAIN_DLL)
|
|
|
|
if(MSVC)
|
|
# msvc does not append 'lib' - do it here to have consistent name
|
|
set_target_properties(rsp-terrain-lib PROPERTIES PREFIX "lib")
|
|
set_target_properties(rsp-terrain-lib PROPERTIES IMPORT_PREFIX "lib")
|
|
endif()
|
|
endif()
|
|
|
|
|
|
# Declare the static library instance
|
|
add_library(rsp-terrain-libstatic STATIC ${RSP_TERRAIN_SOURCES})
|
|
set_property(TARGET rsp-terrain-libstatic PROPERTY C_STANDARD 90)
|
|
|
|
target_include_directories(rsp-terrain-libstatic PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
if(NOT MSVC)
|
|
set_target_properties(rsp-terrain-libstatic PROPERTIES OUTPUT_NAME "${RSP_TERRAIN_LIB_NAME}")
|
|
set_target_properties(rsp-terrain-libstatic PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
else()
|
|
set_target_properties(rsp-terrain-libstatic PROPERTIES OUTPUT_NAME "${RSP_TERRAIN_LIB_NAME}_static")
|
|
set_target_properties(rsp-terrain-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-terrain-libstatic PROPERTIES PREFIX "lib")
|
|
set_target_properties(rsp-terrain-libstatic PROPERTIES IMPORT_PREFIX "lib")
|
|
endif()
|