Skip to content

Commit b72ea02

Browse files
build(deps): add moonlight-common-c
1 parent 1ea97de commit b72ea02

6 files changed

Lines changed: 87 additions & 4 deletions

File tree

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
branch = master
99
[submodule "third-party/nxdk"]
1010
path = third-party/nxdk
11-
url = https://github.com/XboxDev/nxdk.git
11+
url = https://github.com/ReenigneArcher/nxdk.git
1212
branch = master

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ endif()
4848
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
4949
set(CMAKE_C_FLAGS_RELEASE "-O2")
5050

51+
# submodules
52+
# moonlight common library
53+
# find_package(OpenSSL REQUIRED)
54+
include(GetOpenSSL REQUIRED)
55+
set(ENET_NO_INSTALL ON CACHE BOOL "Don't install any libraries built for enet")
56+
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c")
57+
#target_include_directories(moonlight-common-c PUBLIC "/mingw32/include")
58+
target_link_libraries(enet PUBLIC NXDK::NXDK NXDK::Net NXDK::ws2_32)
59+
5160
set(MOONLIGHT_SOURCES
5261
"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
5362
)
@@ -77,6 +86,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC
7786
)
7887

7988
target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE "")
89+
add_dependencies(${CMAKE_PROJECT_NAME} moonlight-common-c)
8090

8191
#
8292
# tests

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ This script takes care of everything, except installing the prerequisites.
6767
- [ ] Get tests to properly compile
6868
- [ ] Enable codecov
6969
- [x] Enable sonarcloud
70-
- [ ] Build moonlight-common-c
71-
- [ ] Build custom enet, depends on https://github.com/XboxDev/nxdk/pull/680 or https://github.com/thrimbor/nxdk/tree/winsock/lib/winapi (seems unlikely nxdk will ever be ready for this, could definitely use some help with this)
70+
- [x] Build moonlight-common-c
71+
- [x] Build custom enet
7272
- Menus / Screens
7373
- [x] Loading/splash screen
7474
- [x] Initial loading screen, see https://github.com/XboxDev/nxdk/blob/master/samples/sdl_image/main.c

cmake/modules/FindNXDK.cmake

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ if(NOT TARGET NXDK::NXDK)
6262
IMPORTED_LOCATION "${NXDK_DIR}/lib/winmm.lib"
6363
)
6464

65+
add_library(ws2_32 STATIC IMPORTED)
66+
set_target_properties(
67+
ws2_32
68+
PROPERTIES
69+
IMPORTED_LOCATION "${NXDK_DIR}/lib/ws2_32.lib"
70+
)
71+
6572
add_library(xboxrt STATIC IMPORTED)
6673
set_target_properties(
6774
xboxrt
@@ -89,6 +96,7 @@ if(NOT TARGET NXDK::NXDK)
8996
pdclib
9097
winapi
9198
winmm
99+
ws2_32
92100
xboxrt
93101
zlib
94102
)
@@ -106,3 +114,34 @@ if(NOT TARGET NXDK::NXDK_CXX)
106114
add_library(NXDK::NXDK_CXX INTERFACE IMPORTED)
107115
target_link_libraries(NXDK::NXDK_CXX INTERFACE nxdk_cxx)
108116
endif()
117+
118+
if (NOT TARGET NXDK::Net)
119+
add_library(NXDK::Net INTERFACE IMPORTED)
120+
target_link_libraries(
121+
NXDK::Net
122+
INTERFACE
123+
nxdk_net
124+
)
125+
target_include_directories(
126+
NXDK::Net
127+
SYSTEM INTERFACE
128+
"${NXDK_DIR}/lib/net/lwip/src/include"
129+
"${NXDK_DIR}/lib/net/nforceif/include"
130+
"${NXDK_DIR}/lib/net/nvnetdrv"
131+
"${NXDK_DIR}/lib/net/pktdrv"
132+
)
133+
endif ()
134+
135+
if (NOT TARGET NXDK::ws2_32)
136+
add_library(NXDK::ws2_32 INTERFACE IMPORTED)
137+
target_link_libraries(
138+
NXDK::ws2_32
139+
INTERFACE
140+
ws2_32
141+
)
142+
target_include_directories(
143+
NXDK::ws2_32
144+
SYSTEM INTERFACE
145+
"${NXDK_DIR}/lib/winapi/ws2_32"
146+
)
147+
endif ()

cmake/modules/GetOpenSSL.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
include_guard(GLOBAL)
2+
3+
set(OPENSSL_VERSION 3.3.2)
4+
set(OPENSSL_URL "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz") # cmake-lint: disable=C0301
5+
6+
find_package(OpenSSL ${OPENSSL_VERSION})
7+
if(NOT OpenSSL_FOUND OR NOT TARGET OpenSSL::Crypto)
8+
message(STATUS
9+
"OpenSSL v${OPENSSL_VERSION} package not found in the system or incomplete. Falling back to FetchContent.")
10+
include(FetchContent)
11+
12+
# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24:
13+
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
14+
cmake_policy(SET CMP0135 NEW)
15+
endif()
16+
17+
FetchContent_Declare(
18+
OpenSSL
19+
URL ${OPENSSL_URL}
20+
SYSTEM
21+
OVERRIDE_FIND_PACKAGE
22+
)
23+
24+
FetchContent_MakeAvailable(openssl)
25+
26+
set(OpenSSL_FOUND TRUE) # cmake-lint: disable=C0103
27+
set(OPENSSL_INCLUDE_DIR ${OpenSSL_SOURCE_DIR}/include)
28+
set(OPENSSL_CRYPTO_LIBRARY ${OpenSSL_BINARY_DIR}/lib/libcrypto.a)
29+
set(OPENSSL_SSL_LIBRARY ${OpenSSL_BINARY_DIR}/lib/libssl.a)
30+
set(OPENSSL_LIBRARIES OpenSSL::Crypto OpenSSL::SSL)
31+
endif()
32+
33+
message(STATUS "OpenSSL include dirs: ${OPENSSL_INCLUDE_DIR}")
34+
message(STATUS "OpenSSL libraries: ${OPENSSL_LIBRARIES}")

0 commit comments

Comments
 (0)