-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
81 lines (67 loc) · 2.65 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 2.8)
project(zhban)
set(ENV{PKG_CONFIG_PATH} "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/:${CMAKE_INSTALL_PREFIX}/lib/x86_64-linux-gnu/pkgconfig/:")
set(ENV{PYTHONPATH} "${CMAKE_INSTALL_PREFIX}/lib/python3.4/site-packages")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ARCH64 TRUE)
else()
set(ARCH64 FALSE)
endif()
set(CMAKE_C_FLAGS "-std=c99 -Wall -Wextra -fvisibility=hidden -msse -m3dnow -mmmx")
set(CMAKE_C_FLAGS_DEBUG "-ggdb3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -ggdb3")
set(CMAKE_C_FLAGS_RELEASE "-O3 -ggdb3")
if (ARCH64)
option(BUILD_32BIT "Compile 32-bit version" OFF)
if(BUILD_32BIT)
set(CMAKE_LIBRARY_PATH /usr/lib32 /usr/lib/i386-linux-gnu)
set(CMAKE_C_FLAGS "-m32 ${CMAKE_C_FLAGS}")
endif()
endif()
option(BUILD_STATIC "Build libzhban_s.a" OFF)
option(PYTHON_BINDINGS "Install python bindings, test app" ON)
if (PYTHON_BINDINGS)
find_program(PYTHON NAMES python3 python2 python DOC "python binary for the bindings install")
endif()
include(FindPkgConfig)
pkg_check_modules(PKG_FT2 REQUIRED freetype2)
link_directories(${PKG_FT2_LIBRARY_DIRS})
include_directories( ${PKG_FT2_INCLUDE_DIRS} )
pkg_check_modules(PKG_HBZ REQUIRED harfbuzz)
link_directories(${PKG_HBZ_LIBRARY_DIRS})
include_directories( ${PKG_HBZ_INCLUDE_DIRS} )
pkg_check_modules(PKG_SDL2 QUIET sdl2)
option(USE_SDL2 "Use SDL_atomic.h functions and compile SDL2 helpers" OFF)
if (USE_SDL2)
if(NOT PKG_SDL2_FOUND)
message(SEND_ERROR "SDL 2.0 not found.")
endif()
link_directories(${PKG_SDL2_LIBRARY_DIRS})
include_directories( ${PKG_SDL2_INCLUDE_DIRS} )
set_source_files_properties( zhban.c PROPERTIES COMPILE_DEFINITIONS USE_SDL2)
endif()
if (BUILD_STATIC)
add_library(zhban_s STATIC zhban.c utf.c)
install(TARGETS zhban_s ARCHIVE DESTINATION lib)
endif()
add_library(zhban SHARED zhban.c utf.c)
target_link_libraries(zhban ${PKG_HBZ_LIBRARIES} ${PKG_FT2_LIBRARIES})
if (USE_SDL2)
target_link_libraries(zhban ${PKG_SDL2_LIBRARIES})
endif()
install(TARGETS zhban LIBRARY DESTINATION lib)
add_executable(zhbantest test.c)
target_link_libraries(zhbantest zhban)
if (USE_SDL2)
target_link_libraries(zhbantest ${PKG_SDL2_LIBRARIES})
endif()
install(TARGETS zhbantest RUNTIME DESTINATION bin/)
if (PYTHON_BINDINGS)
if (${PYTHON} STREQUAL "PYTHON-NOTFOUND")
message(WARNING "python is ${PYTHON}, that is, missing")
else()
file(COPY ${CMAKE_SOURCE_DIR}/python DESTINATION ${CMAKE_BINARY_DIR})
configure_file(${CMAKE_SOURCE_DIR}/python/install.sh.in ${CMAKE_BINARY_DIR}/python/install.sh @ONLY)
install(CODE "execute_process(COMMAND sh install.sh WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/python)")
endif()
endif()