forked from houmain/spright
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
109 lines (94 loc) · 3.02 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
cmake_minimum_required(VERSION 3.12)
project(spright)
set(GIT_COMMIT_LAST_TAG "0.0.0")
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_LAST_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
configure_file("src/version.h.in" "${CMAKE_SOURCE_DIR}/src/_version.h")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
set(SOURCES
src/common.cpp
src/settings.cpp
src/image.cpp
src/input.cpp
src/InputParser.cpp
src/trimming.cpp
src/packing.cpp
src/pack_binpack.cpp
src/pack_compact.cpp
src/pack_single.cpp
src/pack_keep.cpp
src/output.cpp
src/globbing.cpp
src/main.cpp
libs/rect_pack/rect_pack.cpp
)
if(NOT MSVC)
set_source_files_properties(${SOURCES}
PROPERTIES COMPILE_FLAGS "-Wall -Wextra -Wsign-conversion -Wconversion -Wno-missing-field-initializers")
endif()
file(GLOB CHIPMUNK_SOURCES libs/chipmunk/src/*.c)
set(SOURCES ${SOURCES}
libs/rect_pack/stb_rect_pack.cpp
libs/rect_pack/MaxRectsBinPack.cpp
libs/stb/stb_impl.cpp
libs/miniz/miniz.c
libs/texpack/bleeding.cpp
${CHIPMUNK_SOURCES}
)
set(INCLUDES ${INCLUDES}
libs
libs/chipmunk/include
)
file(GLOB_RECURSE HEADERS include src/**.h libs/*.hpp libs/**.h )
if(UNIX AND NOT APPLE)
link_libraries(stdc++fs pthread)
elseif(WIN32)
add_compile_definitions(UNICODE _WIN32_WINNT=0x0501)
set(SOURCES ${SOURCES}
libs/utf8_console/utf8_console.cpp
)
add_compile_options(/GR- /W1)
set(MSVC_SHARED_RUNTIME OFF)
endif()
include_directories(.)
include_directories(SYSTEM ${INCLUDES})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCES} ${HEADERS})
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
option(ENABLE_TEST "Enable tests")
if(ENABLE_TEST)
set(TEST_SOURCES ${SOURCES}
test/test-main.cpp
test/test-scope.cpp
test/test-autocompletion.cpp
test/test-packing.cpp
test/test-performance.cpp
test/test-globbing.cpp
test/test-templates.cpp
)
list(REMOVE_ITEM TEST_SOURCES src/main.cpp)
add_executable(spright-tests ${TEST_SOURCES})
add_compile_definitions(EMBED_TEST_FILES)
endif()
# install
install(TARGETS ${PROJECT_NAME} DESTINATION .)
# package
set(CPACK_PACKAGE_NAME "spright")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "spright")
set(CPACK_PACKAGE_VENDOR "Albert Kalchmair")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "spright")
set(CPACK_PACKAGE_EXECUTABLES "spright;spright")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/houmain/spright")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
set(CPACK_STRIP_FILES TRUE)
string(REGEX MATCHALL "[0-9]+" VERSION_LIST "${GIT_COMMIT_LAST_TAG}")
list(GET VERSION_LIST 0 CPACK_PACKAGE_VERSION_MAJOR)
list(GET VERSION_LIST 1 CPACK_PACKAGE_VERSION_MINOR)
list(GET VERSION_LIST 2 CPACK_PACKAGE_VERSION_PATCH)
include(CPack)