forked from jacksondunstan/UnityNativeScripting
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
80 lines (73 loc) · 2.95 KB
/
CMakeLists.txt
File metadata and controls
80 lines (73 loc) · 2.95 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
cmake_minimum_required(VERSION 3.6.0 FATAL_ERROR)
project(NativeScript CXX)
# Set platform-dependent compilation defines matching C#
if (EDITOR)
add_definitions(-DUNITY_EDITOR)
if (WIN32)
add_definitions(-DUNITY_EDITOR_WIN)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
add_definitions(-DUNITY_EDITOR_OSX)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_definitions(-DUNITY_EDITOR_LINUX)
endif()
else()
add_definitions(-DUNITY_STANDALONE)
if (WIN32)
add_definitions(-DUNITY_STANDALONE_WIN)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
add_definitions(-DUNITY_STANDALONE_OSX)
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_definitions(-DUNITY_STANDALONE_LINUX)
endif()
endif()
if (IOS)
add_definitions(-DUNITY_IOS)
endif()
if (ANDROID_NDK)
add_definitions(-DUNITY_ANDROID)
endif()
# Use NDK on Android
if (ANDROID_NDK)
set(ANDROID_ABI armeabi-v7a)
set(CMAKE_TOOLCHAIN_FILE ${ANDROID_NDK}/build/cmake/android.toolchain.cmake)
endif()
# Set output path
if (ANDROID_NDK)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Android)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Android)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Android)
elseif (IOS)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../Assets/Plugins/iOS)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/../Assets/Plugins/iOS)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/../Assets/Plugins/iOS)
elseif (WIN32 OR (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
if (EDITOR)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Editor)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Editor)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/../Assets/Plugins/Editor)
else()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../Assets/Plugins)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/../Assets/Plugins)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/../Assets/Plugins)
endif()
endif()
# Set the directories for NativeScript and game C++ as include directories
include_directories(
${CMAKE_SOURCE_DIR}/NativeScript
${CMAKE_SOURCE_DIR}/Game)
# Set all .cpp files for NativeScript and the game as sources
file(GLOB GAMESOURCEFILES ${CMAKE_SOURCE_DIR}/Game/*.cpp)
file(GLOB GAMEHEADERFILES ${CMAKE_SOURCE_DIR}/Game/*.h)
file(GLOB NATIVESCRIPTSOURCEFILES ${CMAKE_SOURCE_DIR}/NativeScript/*.cpp)
file(GLOB NATIVESCRIPTHEADERFILES ${CMAKE_SOURCE_DIR}/NativeScript/*.h)
set(
SOURCES
${GAMESOURCEFILES}
${GAMEHEADERFILES}
${NATIVESCRIPTSOURCEFILES}
${NATIVESCRIPTHEADERFILES})
# Build a library. If on an Apple platform, build it in a bundle.
add_library(${PROJECT_NAME} MODULE ${SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES BUNDLE TRUE)
# Enable C++11
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)