forked from decaf-emu/decaf-emu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
101 lines (87 loc) · 3.27 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
cmake_minimum_required(VERSION 2.8.4)
include(ExternalProject)
project(decaf-emu C CXX)
option(DECAF_GLFW "Build with GLFW support" ON)
option(DECAF_SDL "Build with SDL support" ON)
set(PUGIXML_DIR "libraries/pugixml")
include_directories("${PUGIXML_DIR}/src")
add_library(pugixml STATIC "${PUGIXML_DIR}/src/pugixml.cpp")
set(PUGIXML_LIBRARIES pugixml)
set(ADDRLIB_DIR "libraries/addrlib")
include_directories("${ADDRLIB_DIR}/include")
include_directories("${ADDRLIB_DIR}/src")
add_library(addrlib STATIC
"${ADDRLIB_DIR}/src/addrinterface.cpp"
"${ADDRLIB_DIR}/src/core/addrelemlib.cpp"
"${ADDRLIB_DIR}/src/core/addrlib.cpp"
"${ADDRLIB_DIR}/src/core/addrobject.cpp"
"${ADDRLIB_DIR}/src/r600/r600addrlib.cpp"
)
set(ADDRLIB_LIBRARIES addrlib)
set(DOCOPT_DIR "libraries/docopt")
include_directories("${DOCOPT_DIR}")
externalproject_add(docopt
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${DOCOPT_DIR}"
CMAKE_CACHE_ARGS
-DCMAKE_C_COMPILER:string=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:string=${CMAKE_C_FLAGS}
-DCMAKE_CXX_COMPILER:string=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:string=${CMAKE_CXX_FLAGS}
INSTALL_COMMAND ""
)
externalproject_get_property(docopt BINARY_DIR)
set(DOCOPT_LIBRARIES "${BINARY_DIR}/${CMAKE_FIND_LIBRARY_PREFIXES}docopt_s.a")
set(SPDLOG_DIR "libraries/spdlog")
include_directories("${SPDLOG_DIR}/include")
set(GSL_DIR "libraries/gsl-lite")
include_directories("${GSL_DIR}/include")
set(CEREAL_DIR "libraries/cereal")
include_directories("${CEREAL_DIR}/include")
set(ASMJIT_DIR "libraries/asmjit")
include_directories("${ASMJIT_DIR}/src")
externalproject_add(asmjit
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${ASMJIT_DIR}"
CMAKE_CACHE_ARGS
-DCMAKE_C_COMPILER:string=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:string=${CMAKE_C_FLAGS}
-DCMAKE_CXX_COMPILER:string=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:string=${CMAKE_CXX_FLAGS}
-DASMJIT_STATIC:string=on
INSTALL_COMMAND ""
)
externalproject_get_property(asmjit BINARY_DIR)
set(ASMJIT_LIBRARIES "${BINARY_DIR}/${CMAKE_FIND_LIBRARY_PREFIXES}asmjit.a")
set(GLBINDING_DIR "libraries/glbinding")
include_directories("${GLBINDING_DIR}/source/glbinding/include")
externalproject_add(glbinding
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${GLBINDING_DIR}"
CMAKE_CACHE_ARGS
-DCMAKE_C_COMPILER:string=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:string=${CMAKE_C_FLAGS}
-DCMAKE_CXX_COMPILER:string=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:string=${CMAKE_CXX_FLAGS}
-DOPTION_BUILD_STATIC:string=on
-DOPTION_BUILD_TESTS:string=off
INSTALL_COMMAND ""
)
externalproject_get_property(glbinding BINARY_DIR)
set(GLBINDING_LIBRARIES "${BINARY_DIR}/${CMAKE_FIND_LIBRARY_PREFIXES}glbinding.a")
find_package(Threads REQUIRED)
find_package(OpenGL REQUIRED)
find_package(PkgConfig REQUIRED)
if (DECAF_SDL)
pkg_search_module(SDL2 REQUIRED sdl2)
include_directories(${SDL2_INCLUDE_DIRS})
add_definitions(-DDECAF_SDL)
endif()
if (DECAF_GLFW)
pkg_search_module(GLFW REQUIRED glfw3)
add_definitions(-DDECAF_GLFW)
endif()
if (NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
if (APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
endif()
add_subdirectory("src")