42 lines
1.7 KiB
CMake
42 lines
1.7 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)
|
|
|
|
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)
|