-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
83 lines (73 loc) · 2.88 KB
/
Copy pathCMakeLists.txt
File metadata and controls
83 lines (73 loc) · 2.88 KB
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
cmake_minimum_required(VERSION 3.27)
project(BitCraft)
set(CMAKE_CXX_STANDARD 17)
include(./third_party/vendor_tools/vendor.cmake)
include(./vendor/openssl.cmake)
list(APPEND BITCRAFT_INCLUDES src)
#freetype
list(APPEND BITCRAFT_STATIC_VENDORS freetype)
list(APPEND BITCRAFT_INCLUDES third_party/freetype/include)
#harfbuzz
list(APPEND BITCRAFT_STATIC_VENDORS harfbuzz)
list(APPEND BITCRAFT_INCLUDES third_party/harfbuzz/src)
#asio
list(APPEND BITCRAFT_INCLUDES third_party/asio/asio/include)
#openssl
list(APPEND BITCRAFT_INCLUDES third_party/openssl/include)
#stb
list(APPEND BITCRAFT_INCLUDES third_party/stb)
#rectpack2D
list(APPEND BITCRAFT_INCLUDES third_party/rectpack2D/src)
#glm
list(APPEND BITCRAFT_INCLUDES third_party/glm)
#json
list(APPEND BITCRAFT_INCLUDES third_party/json/include)
#zlib
list(APPEND BITCRAFT_STATIC_VENDORS zlib)
list(APPEND BITCRAFT_INCLUDES third_party/zlib)
file(GLOB_RECURSE SRC_FILES
src/base/*.*
src/minecraft/*.*
src/rendering/*.*)
file(GLOB PLATFORM_COMMON_FILES
src/platform/*.*)
file(GLOB GPU_COMMON_FILES
src/gpu/*.*
src/gpu/core/*.*
src/gpu/opengl/*.*)
list(APPEND BITCRAFT_FILES ${SRC_FILES})
list(APPEND BITCRAFT_FILES ${PLATFORM_COMMON_FILES} ${GPU_COMMON_FILES})
if (ANDROID)
file(GLOB_RECURSE PLATFORM_FILES src/platform/android/*.*)
file(GLOB_RECURSE GPU_FILES src/gpu/opengl/egl/*.*)
list(APPEND BITCRAFT_FILES ${PLATFORM_FILES} ${GPU_FILES})
endif ()
add_vendor_target(bitcraft-vendor STATIC_VENDORS ${BITCRAFT_STATIC_VENDORS} SHARED_VENDORS ${BITCRAFT_SHARED_VENDORS})
find_vendor_libraries(bitcraft-vendor STATIC BITCRAFT_VENDOR_STATIC_LIBRARIES SHARED BITCRAFT_VENDOR_SHARED_LIBRARIES)
list(APPEND BITCRAFT_STATIC_LIBS ${BITCRAFT_VENDOR_STATIC_LIBRARIES})
list(APPEND BITCRAFT_STATIC_LIBS ${OPENSSL_STATIC_LIBRARIES})
list(APPEND BITCRAFT_SHARED_LIBS ${BITCRAFT_VENDOR_SHARED_LIBRARIES})
list(APPEND BITCRAFT_DEPEND_TARGETS bitcraft-vendor)
list(APPEND BITCRAFT_DEPEND_TARGETS openssl-vendor)
if (ANDROID)
add_library(bitcraft SHARED ${BITCRAFT_FILES})
else ()
add_library(bitcraft STATIC ${BITCRAFT_FILES})
merge_libraries_into(bitcraft ${BITCRAFT_STATIC_LIBS})
endif ()
if (ANDROID)
find_library(LOG_LIB log)
list(APPEND BITCRAFT_SHARED_LIBS ${LOG_LIB})
find_library(ANDROID_LIB android)
list(APPEND BITCRAFT_SHARED_LIBS ${ANDROID_LIB})
find_library(GLESV3_LIB GLESv3)
list(APPEND BITCRAFT_SHARED_LIBS ${GLESV3_LIB})
find_library(EGL_LIB EGL)
list(APPEND BITCRAFT_SHARED_LIBS ${EGL_LIB})
find_library(JNIGRAPHICS_LIB jnigraphics)
list(APPEND BITCRAFT_SHARED_LIBS ${JNIGRAPHICS_LIB})
endif ()
add_dependencies(bitcraft ${BITCRAFT_DEPEND_TARGETS})
target_include_directories(bitcraft PUBLIC include PUBLIC ${BITCRAFT_INCLUDES})
target_link_libraries(bitcraft ${BITCRAFT_STATIC_LIBS} ${BITCRAFT_SHARED_LIBS})
target_compile_definitions(bitcraft PRIVATE ASIO_STANDALONE)