-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathDependencies.cmake
107 lines (82 loc) · 2.29 KB
/
Dependencies.cmake
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
# Thirdparty
# blast
set(BLAST_SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/blast)
set(BLAST_SOURCE_FILES
${BLAST_SOURCE_DIR}/blast.h
${BLAST_SOURCE_DIR}/blast.c
)
add_library(blast ${BLAST_SOURCE_FILES})
source_group("Source Files" FILES ${BLAST_SOURCE_FILES})
target_include_directories(blast
PUBLIC ${BLAST_SOURCE_DIR}
)
# cxxopts
set(CXXOPTS_BUILD_TESTS OFF CACHE BOOL "Build cxxopts tests")
set(CXXOPTS_BUILD_EXAMPLES OFF CACHE BOOL "Build cxxopts examples")
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/cxxopts)
# ghc filesystem
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/filesystem)
# pthread
find_package(Threads REQUIRED)
# EnTT
add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/entt)
# OpenAL
find_package(OpenAL REQUIRED)
AddImportedTarget(OpenAL::OpenAL
${OPENAL_LIBRARY}
${OPENAL_INCLUDE_DIR}
)
if(TARGET_OS_IOS)
set(THIRDPARTY_IOS_DIR_PATH ${CMAKE_SOURCE_DIR}/thirdparty/ios)
# SDL2
set(SDL2_IOS_DIR_PATH ${THIRDPARTY_IOS_DIR_PATH}/sdl2-ios)
AddImportedTarget(SDL2::SDL2
${SDL2_IOS_DIR_PATH}/lib/libSDL2.a
${SDL2_IOS_DIR_PATH}/include
)
# FFmpeg
set(FFMPEG_IOS_DIR_PATH ${THIRDPARTY_IOS_DIR_PATH}/ffmpeg-ios)
set(FFMPEG_IOS_INCLUDE_DIR_PATH ${FFMPEG_IOS_DIR_PATH}/include)
set(FFMPEG_IOS_LIB_DIR_PATH ${FFMPEG_IOS_DIR_PATH}/lib)
AddImportedTarget(FFMPEG::AVCODEC
${FFMPEG_IOS_LIB_DIR_PATH}/libavcodec.a
${FFMPEG_IOS_INCLUDE_DIR_PATH}
)
AddImportedTarget(FFMPEG::AVFORMAT
${FFMPEG_IOS_LIB_DIR_PATH}/libavformat.a
${FFMPEG_IOS_INCLUDE_DIR_PATH}
)
AddImportedTarget(FFMPEG::AVUTIL
${FFMPEG_IOS_LIB_DIR_PATH}/libavutil.a
${FFMPEG_IOS_INCLUDE_DIR_PATH}
)
AddImportedTarget(FFMPEG::SWSCALE
${FFMPEG_IOS_LIB_DIR_PATH}/libswscale.a
${FFMPEG_IOS_INCLUDE_DIR_PATH}
)
# swresample
AddImportedTarget(SWRESAMPLE::SWRESAMPLE
${FFMPEG_IOS_LIB_DIR_PATH}/libswresample.a
${FFMPEG_IOS_INCLUDE_DIR_PATH}
)
else()
# SDL2
find_package(SDL2 REQUIRED)
# FFmpeg
find_package(FFmpeg REQUIRED COMPONENTS
AVCODEC
AVFORMAT
AVUTIL
SWSCALE
)
# swresample
find_package(Libswresample REQUIRED)
AddImportedTarget(SWRESAMPLE::SWRESAMPLE
${LIBSWRESAMPLE_LIBRARIES}
${LIBSWRESAMPLE_INCLUDE_DIRS}
)
endif() # TARGET_OS_IOS
# GTest
if(SOURCEHOLD_BUILD_TESTS MATCHES ON)
find_package(GTest REQUIRED)
endif()