-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
81 lines (69 loc) · 2.32 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
cmake_minimum_required(VERSION 3.6)
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
project(ttoy)
enable_testing()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
# Add a target to update the ttoy version header at build time
find_package(Git REQUIRED) # Git needed to get version string
message("git executable: ${GIT_EXECUTABLE}")
configure_file(
"${CMAKE_SOURCE_DIR}/include/ttoy/configure_version_header.cmake.in"
"${CMAKE_BINARY_DIR}/include/ttoy/configure_version_header.cmake"
@ONLY
)
add_custom_target(ttoy_version ALL
COMMAND ${CMAKE_COMMAND} -P
"${CMAKE_BINARY_DIR}/include/ttoy/configure_version_header.cmake"
DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/include/ttoy/configure_version_header.cmake"
"${CMAKE_CURRENT_SOURCE_DIR}/include/ttoy/version.h.in"
)
if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Werror")
endif()
#find_package(GLM REQUIRED)
find_package(Freetype REQUIRED)
find_package(GLEW REQUIRED)
find_package(SDL2 REQUIRED)
find_package(Jansson REQUIRED)
find_package(X11 REQUIRED)
# FIXME: I might need to use the ${FONTCONFIG_DEFINITIONS} variable somewhere
find_package(Fontconfig REQUIRED)
add_subdirectory("./extern")
add_library(tsm INTERFACE IMPORTED)
add_dependencies(tsm tsm_build)
set_target_properties(tsm PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${TSM_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${TSM_LIBRARY}"
)
include_directories(SYSTEM
${FONTCONFIG_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${JANSSON_INCLUDE_DIRS}
${SDL2_INCLUDE_DIR}
${X11_INCLUDE_DIR}
)
# Use the ttoy header files in this project
include_directories(SYSTEM
${CMAKE_SOURCE_DIR}/include
${CMAKE_BINARY_DIR}/include
)
# Install the ttoy header files
install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/"
DESTINATION "include"
FILES_MATCHING PATTERN "*.h")
install(DIRECTORY "${CMAKE_BINARY_DIR}/include/"
DESTINATION "include"
FILES_MATCHING PATTERN "*.h")
# Install the ttoy man pages
install(DIRECTORY "${CMAKE_SOURCE_DIR}/doc/man/man1"
DESTINATION "man")
install(DIRECTORY "${CMAKE_SOURCE_DIR}/doc/man/man3"
DESTINATION "man")
add_subdirectory("./src")
find_package(Check)
if(CHECK_FOUND)
include_directories(SYSTEM ${CHECK_INCLUDE_DIRS})
add_subdirectory("./tests")
endif()