Reorganize code into library for reuse
This commit is contained in:
35
lib/CMakeLists.txt
Normal file
35
lib/CMakeLists.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
project(mazemaker_lib)
|
||||
cmake_minimum_required (VERSION 2.8.12)
|
||||
set (mazemaker_SOVERSION_CURRENT 0)
|
||||
set (mazemaker_SOVERSION_REVISION 1)
|
||||
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)
|
||||
|
||||
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_include_directories(mazemaker_shared PUBLIC ${PNG_INCLUDE_DIRS} ../include)
|
||||
target_include_directories(mazemaker_static PUBLIC ${PNG_INCLUDE_DIRS} ../include)
|
||||
target_compile_options(mazemaker_shared PUBLIC ${PNG_CFLAGS_OTHER})
|
||||
target_compile_options(mazemaker_static PUBLIC ${PNG_CFLAGS_OTHER})
|
||||
target_link_options(mazemaker_shared PUBLIC -L${PNG_LIBDIR})
|
||||
Reference in New Issue
Block a user