aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorPatrick Roth <roth@stettbacher.ch>2019-10-22 12:56:59 +0200
committerPatrick Roth <roth@stettbacher.ch>2019-10-22 12:56:59 +0200
commit744732fb4ff701ca6da9fcde60a7da6d9e0dbb11 (patch)
tree8384383ee118b4fcb35e5b5a19a717746c3515e6 /CMakeLists.txt
parentVersion upgrade to 1.0.1 (diff)
downloado3000-color-pipe-744732fb4ff701ca6da9fcde60a7da6d9e0dbb11.tar.gz
o3000-color-pipe-744732fb4ff701ca6da9fcde60a7da6d9e0dbb11.zip
Library version defined in CMakeLists.txt
Current library version can be requested with function color_pipe_get_version().
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt42
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}
+)