-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCMakeLists.txt
54 lines (38 loc) · 1.54 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
cmake_minimum_required(VERSION 3.0)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
set(PROJECT_NAME "node-fontinfo")
project(${PROJECT_NAME})
set(freetype2_INSTALL ${CMAKE_BINARY_DIR}/freetype2)
include(ucm)
include(ExternalProject)
ExternalProject_Add(
freetype2
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/freetype2
URL "https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${freetype2_INSTALL}
)
set(freetype2_INCLUDE_DIRS ${freetype2_INSTALL}/include/freetype2)
set(freetype2_DEBUG_LIBRARY
${freetype2_INSTALL}/lib/freetyped${CMAKE_STATIC_LIBRARY_SUFFIX})
set(freetype2_RELEASE_LIBRARY
${freetype2_INSTALL}/lib/freetype${CMAKE_STATIC_LIBRARY_SUFFIX})
set(fontinfo_SOURCES
src/fontinfo/fontinfo.c)
set(fontinfo_HEADERS
src/fontinfo/fontinfo.h
src/fontinfo/endian.h)
add_library(fontinfo STATIC ${fontinfo_SOURCES})
target_include_directories(fontinfo PUBLIC ${freetype2_INCLUDE_DIRS})
target_link_libraries(fontinfo
optimized ${freetype2_RELEASE_LIBRARY}
debug ${freetype2_DEBUG_LIBRARY})
add_dependencies(fontinfo freetype2)
add_library(${PROJECT_NAME} SHARED "src/module.cpp")
target_link_libraries(${PROJECT_NAME} fontinfo ${CMAKE_JS_LIB})
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_JS_INC})
if(FONTINFO_BUILD_TESTS)
add_executable(simple_test "test/simple_test.c")
target_link_libraries(simple_test fontinfo)
target_include_directories(simple_test PUBLIC "src")
endif()