Files
mazemaker/lib/CMakeLists.txt
2022-01-15 14:40:21 -05:00

43 lines
1.8 KiB
CMake

project(mazemaker_lib)
cmake_minimum_required (VERSION 2.8.12)
include(CheckSymbolExists)
set (mazemaker_SOVERSION_CURRENT 0)
set (mazemaker_SOVERSION_REVISION 2)
set (mazemaker_SOVERSION_AGE 0)
math (EXPR mazemaker_SOVERSION_MAJOR "${mazemaker_SOVERSION_CURRENT} - ${mazemaker_SOVERSION_AGE}")
math (EXPR mazemaker_SOVERSION_MINOR "${mazemaker_SOVERSION_AGE} + ${mazemaker_SOVERSION_REVISION}")
set (mazemaker_VERSION ${mazemaker_SOVERSION_MAJOR}.${mazemaker_SOVERSION_MINOR})
set (mazemaker_SOVERSION ${mazemaker_SOVERSION_MAJOR}.${mazemaker_SOVERSION_MINOR})
find_package(PkgConfig REQUIRED)
pkg_search_module(PNG REQUIRED libpng)
check_symbol_exists(arc4random_uniform "stdlib.h" HAVE_ARC4RANDOM)
check_symbol_exists(srand_deterministic "stdlib.h" HAVE_SRAND_DETERMINISTIC)
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"
"${CMAKE_CURRENT_SOURCE_DIR}/config.h" )
file(GLOB SOURCES *.c *.h)
add_library(mazemaker_shared SHARED ${SOURCES})
add_library(mazemaker_static STATIC ${SOURCES})
set_target_properties(mazemaker_shared PROPERTIES
LIBRARY_OUTPUT_NAME mazemaker
VERSION ${mazemaker_VERSION}
SOVERSION ${mazemaker_SOVERSION}
)
set_target_properties(mazemaker_static PROPERTIES
OUTPUT_NAME mazemaker
VERSION ${mazemaker_VERSION}
SOVERSION ${mazemaker_SOVERSION}
)
install (TARGETS mazemaker_shared mazemaker_static DESTINATION ${LIB_INSTALL_DIR})
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../include/mazemaker.h DESTINATION ${INCLUDE_INSTALL_DIR})
target_link_libraries(mazemaker_shared PUBLIC ${PNG_LIBRARIES};m)
target_link_directories(mazemaker_shared PUBLIC ${PNG_LIBRARY_DIRS})
target_include_directories(mazemaker_shared PUBLIC ${PNG_INCLUDE_DIRS};../include)
target_include_directories(mazemaker_static PUBLIC ${PNG_INCLUDE_DIRS};../include)