diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0590745..6c8716d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,11 +3,26 @@ # project(O-3000-Color-Pipe) -cmake_minimum_required(VERSION 2.4) + +cmake_minimum_required(VERSION 3.0) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) set(CMAKE_INCLUDE_CURRENT_DIR ON) +# library version definition +set(VERSION_MAJOR 1) +set(VERSION_MINOR 0) +set(VERSION_RELEASE 2) +set(VERSION_STR "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE}") + +# pass macros to preprocessor +add_definitions(-DPIPE_VERSION_MAJOR=${VERSION_MAJOR}) +add_definitions(-DPIPE_VERSION_MINOR=${VERSION_MINOR}) +add_definitions(-DPIPE_VERSION_RELEASE=${VERSION_RELEASE}) + +# library name +set(LIB_NAME o3000_imgpipe) + # find libo3000 library find_package(LibO3000 REQUIRED) @@ -15,16 +30,27 @@ include_directories(.) file(GLOB colorpipesources *.c *.h) -add_library(o3000_imgpipe SHARED ${colorpipesources}) +add_library(${LIB_NAME} SHARED ${colorpipesources}) -set_target_properties (o3000_imgpipe PROPERTIES - OUTPUT_NAME "o3000_imgpipe" - VERSION 1.0.0 - SOVERSION 1 +set_target_properties ( ${LIB_NAME} PROPERTIES + OUTPUT_NAME "${LIB_NAME}" + VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE}" + SOVERSION ${VERSION_MAJOR} LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" ) -target_compile_options(o3000_imgpipe PRIVATE -Wall -g -O3 -std=c11 -ggdb -D_XOPEN_SOURCE=500 -fPIC) +target_compile_options(${LIB_NAME} PRIVATE -Wall -g -O3 -std=c11 -ggdb -D_XOPEN_SOURCE=500 -fPIC) -install(TARGETS o3000_imgpipe DESTINATION lib) +install(TARGETS ${LIB_NAME} DESTINATION lib) install(FILES "color_pipe.h" DESTINATION "include/o3000") + +add_custom_target(release_mingw64 DEPENDS ${LIB_NAME}) +add_custom_command( + TARGET release_mingw64 + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/libo3000_imgpipe-${VERSION_STR}/include/o3000 + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/libo3000_imgpipe-${VERSION_STR}/MinGW64 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/color_pipe.h ${CMAKE_CURRENT_BINARY_DIR}/libo3000_imgpipe-${VERSION_STR}/include/o3000 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_FILE_NAME:${LIB_NAME}>* ${CMAKE_CURRENT_BINARY_DIR}/libo3000_imgpipe-${VERSION_STR}/MinGW64 + COMMAND ${CMAKE_COMMAND} -E tar "cfv" "libo3000_imgpipe-${VERSION_STR}.zip" --format=zip libo3000_imgpipe-${VERSION_STR} + COMMAND ${CMAKE_COMMAND} -E remove_directory libo3000_imgpipe-${VERSION_STR} +) |