All checks were successful
JCS-Prod/RSE-Terrain/pipeline/head This commit looks good
57 lines
1.6 KiB
CMake
57 lines
1.6 KiB
CMake
# CMakeLists.txt
|
|
|
|
####################################################
|
|
# Written by JackCarterSmith, 2022
|
|
# This code is released under the RSE license.
|
|
####################################################
|
|
|
|
|
|
# General configuration
|
|
include(CheckIncludeFile)
|
|
include(CheckCSourceCompiles)
|
|
|
|
if(BUILD_TOOLS)
|
|
# Import needed packages and references their include path
|
|
find_package(PNG 1.6.40 REQUIRED)
|
|
include_directories(${PNG_INCLUDE_DIR})
|
|
find_package(GLEW REQUIRED)
|
|
include_directories(${GLEW_INCLUDE_DIR})
|
|
|
|
|
|
# Define src/headers files
|
|
file(GLOB_RECURSE RSE_TERRAIN_SOURCES ./src/*.c)
|
|
source_group("Source Files" FILES ${RSE_TERRAIN_SOURCES})
|
|
|
|
|
|
# Building instructions for RSE-Terrain
|
|
if(DEFINED ENV{CI})
|
|
set(CMAKE_BUILD_TYPE RELEASE)
|
|
endif()
|
|
|
|
|
|
# Declare standalone application
|
|
add_executable(rse-terrain ${RSE_TERRAIN_SOURCES})
|
|
set_property(TARGET rse-terrain PROPERTY C_STANDARD 90)
|
|
|
|
#target_include_directories(rse-terrain PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
set_target_properties(rse-terrain PROPERTIES OUTPUT_NAME ${RSE_TERRAIN_NAME})
|
|
|
|
if(MSVC)
|
|
# msvc does not append 'lib' - do it here to have consistent name
|
|
set_target_properties(rse-terrain PROPERTIES IMPORT_PREFIX "lib")
|
|
elseif(UNIX)
|
|
set(AUX_LIBS m)# add math.lib for GL processing
|
|
endif()
|
|
|
|
# Link externals libraries to the linker
|
|
if (TARGET GLEW::GLEW)
|
|
if (TARGET PNG::PNG)
|
|
if(RSPTERRAIN_SHARED)
|
|
target_link_libraries(rse-terrain PRIVATE rsp-terrain-lib PNG::PNG GLEW::GLEW ${AUX_LIBS})
|
|
elseif(RSPTERRAIN_STATIC)
|
|
target_link_libraries(rse-terrain PRIVATE rsp-terrain-libstatic PNG::PNG GLEW::GLEW ${AUX_LIBS})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|