-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
110 lines (93 loc) · 3.2 KB
/
CMakeLists.txt
File metadata and controls
110 lines (93 loc) · 3.2 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
cmake_minimum_required(VERSION 3.21)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "iOS" OR IOS)
set(CMAKE_OSX_ARCHITECTURES "arm64")
add_definitions(-DGLES_SILENCE_DEPRECATION)
else()
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
endif()
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
include(cmake/CPM.cmake)
if(NOT DEFINED GEODE_TARGET_PLATFORM)
set(GEODE_TARGET_PLATFORM "Win64")
set(GEODE_GD_VERSION 2.2074)
set(GEODE_COMP_GD_VERSION 22074)
endif()
if (${GEODE_TARGET_PLATFORM} STREQUAL "Win64")
set(GEODE_COMPILER "clang-cl")
set(GEODE_CCACHE_VARIANT "sccache")
#set(GEODE_TRIPLE "x86_64-unknown-windows-msvc")
if(WIN32) # force it!
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
endif()
endif()
set(PROJECT_NAME GDUtils)
project(${PROJECT_NAME} VERSION 1.0.0)
# Use GLOB_RECURSE instead of GLOB
# to recursively add all source files
# under src/
file(GLOB SOURCES
src/*.cpp
src/MoreLeaderboards/*.cpp
src/Notifications/*.cpp
src/Secret/*.cpp
src/Settings/*.cpp
src/Utils/*.cpp
src/Styles/*.cpp
include/*.cpp
)
# Set up the mod binary
add_library(${PROJECT_NAME} SHARED ${SOURCES})
set(ENABLE_SSL_SUPPORT OFF)
set(BUILD_EXAMPLES OFF)
set(BUILD_SHARED_LIBS OFF)
set(BUILD_TESTING OFF)
set(BUILD_TOOLS OFF)
set(BUILD_TOOLS_DOCS OFF)
#set(INSTALL_STATIC_LIBS OFF)
CPMAddPackage("gh:alanxz/rabbitmq-c#035eaa8")
set(BUILD_TESTING OFF)
set(BUILD_BENCH OFF)
set(BUILD_SHARED_LIBS OFF)
#CPMAddPackage("gh:libuv/libuv#c1a9f01")
#CPMAddPackage("gh:CopernicaMarketingSoftware/AMQP-CPP#ca49382")
target_include_directories(${PROJECT_NAME} PRIVATE
libs/filesystem
libs/pl_mpeg/
libs/glew/
${rabbitmq-c_SOURCE_DIR}/include
#${amqpcpp_SOURCE_DIR}/src
#${amqpcpp_SOURCE_DIR}/include
#${libuv_SOURCE_DIR}/include
)
if (NOT DEFINED ENV{GEODE_SDK})
message(FATAL_ERROR "Unable to find Geode SDK! Please define GEODE_SDK environment variable to point to Geode")
else()
message(STATUS "Found Geode: $ENV{GEODE_SDK}")
endif()
add_subdirectory($ENV{GEODE_SDK} ${CMAKE_CURRENT_BINARY_DIR}/geode)
if (APPLE AND NOT (${CMAKE_SYSTEM_NAME} STREQUAL "iOS" OR IOS))
target_link_libraries(${PROJECT_NAME} rabbitmq::rabbitmq-static "-framework OpenGL")
#target_link_libraries(${PROJECT_NAME} uv_a amqpcpp "-framework OpenGL")
else()
target_link_libraries(${PROJECT_NAME} rabbitmq::rabbitmq-static)
#target_link_libraries(${PROJECT_NAME} uv_a amqpcpp)
endif()
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND WIN32)
message("compiling on linux!!")
# why it requires advapi32 is beyond me
target_link_libraries(${PROJECT_NAME} opengl32 ws2_32 crypt32 wldap32 normaliz advapi32)
elseif(${GEODE_TARGET_PLATFORM} STREQUAL "Win32")
target_link_libraries(${PROJECT_NAME} opengl32 ws2_32 Crypt32 Wldap32 Normaliz)
endif()
if (WIN32)
add_compile_definitions(WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0601)
# Disable annoying warnings
target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
# Set up dependencies, resources, link Geode
setup_geode_mod(${PROJECT_NAME})