Skip to content

Commit

Permalink
build(deps): add moonlight-common-c
Browse files Browse the repository at this point in the history
  • Loading branch information
ReenigneArcher committed Oct 30, 2024
1 parent 1ea97de commit b72ea02
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
branch = master
[submodule "third-party/nxdk"]
path = third-party/nxdk
url = https://github.com/XboxDev/nxdk.git
url = https://github.com/ReenigneArcher/nxdk.git
branch = master
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ endif()
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_C_FLAGS_RELEASE "-O2")

# submodules
# moonlight common library
# find_package(OpenSSL REQUIRED)
include(GetOpenSSL REQUIRED)
set(ENET_NO_INSTALL ON CACHE BOOL "Don't install any libraries built for enet")
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c")
#target_include_directories(moonlight-common-c PUBLIC "/mingw32/include")
target_link_libraries(enet PUBLIC NXDK::NXDK NXDK::Net NXDK::ws2_32)

set(MOONLIGHT_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
)
Expand Down Expand Up @@ -77,6 +86,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC
)

target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE "")
add_dependencies(${CMAKE_PROJECT_NAME} moonlight-common-c)

#
# tests
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ This script takes care of everything, except installing the prerequisites.
- [ ] Get tests to properly compile
- [ ] Enable codecov
- [x] Enable sonarcloud
- [ ] Build moonlight-common-c
- [ ] 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)
- [x] Build moonlight-common-c
- [x] Build custom enet
- Menus / Screens
- [x] Loading/splash screen
- [x] Initial loading screen, see https://github.com/XboxDev/nxdk/blob/master/samples/sdl_image/main.c
Expand Down
39 changes: 39 additions & 0 deletions cmake/modules/FindNXDK.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,13 @@ if(NOT TARGET NXDK::NXDK)
IMPORTED_LOCATION "${NXDK_DIR}/lib/winmm.lib"
)

add_library(ws2_32 STATIC IMPORTED)
set_target_properties(
ws2_32
PROPERTIES
IMPORTED_LOCATION "${NXDK_DIR}/lib/ws2_32.lib"
)

add_library(xboxrt STATIC IMPORTED)
set_target_properties(
xboxrt
Expand Down Expand Up @@ -89,6 +96,7 @@ if(NOT TARGET NXDK::NXDK)
pdclib
winapi
winmm
ws2_32
xboxrt
zlib
)
Expand All @@ -106,3 +114,34 @@ if(NOT TARGET NXDK::NXDK_CXX)
add_library(NXDK::NXDK_CXX INTERFACE IMPORTED)
target_link_libraries(NXDK::NXDK_CXX INTERFACE nxdk_cxx)
endif()

if (NOT TARGET NXDK::Net)
add_library(NXDK::Net INTERFACE IMPORTED)
target_link_libraries(
NXDK::Net
INTERFACE
nxdk_net
)
target_include_directories(
NXDK::Net
SYSTEM INTERFACE
"${NXDK_DIR}/lib/net/lwip/src/include"
"${NXDK_DIR}/lib/net/nforceif/include"
"${NXDK_DIR}/lib/net/nvnetdrv"
"${NXDK_DIR}/lib/net/pktdrv"
)
endif ()

if (NOT TARGET NXDK::ws2_32)
add_library(NXDK::ws2_32 INTERFACE IMPORTED)
target_link_libraries(
NXDK::ws2_32
INTERFACE
ws2_32
)
target_include_directories(
NXDK::ws2_32
SYSTEM INTERFACE
"${NXDK_DIR}/lib/winapi/ws2_32"
)
endif ()
34 changes: 34 additions & 0 deletions cmake/modules/GetOpenSSL.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
include_guard(GLOBAL)

set(OPENSSL_VERSION 3.3.2)
set(OPENSSL_URL "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz") # cmake-lint: disable=C0301

find_package(OpenSSL ${OPENSSL_VERSION})
if(NOT OpenSSL_FOUND OR NOT TARGET OpenSSL::Crypto)
message(STATUS
"OpenSSL v${OPENSSL_VERSION} package not found in the system or incomplete. Falling back to FetchContent.")
include(FetchContent)

# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24:
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
cmake_policy(SET CMP0135 NEW)
endif()

FetchContent_Declare(
OpenSSL
URL ${OPENSSL_URL}
SYSTEM
OVERRIDE_FIND_PACKAGE
)

FetchContent_MakeAvailable(openssl)

set(OpenSSL_FOUND TRUE) # cmake-lint: disable=C0103
set(OPENSSL_INCLUDE_DIR ${OpenSSL_SOURCE_DIR}/include)
set(OPENSSL_CRYPTO_LIBRARY ${OpenSSL_BINARY_DIR}/lib/libcrypto.a)
set(OPENSSL_SSL_LIBRARY ${OpenSSL_BINARY_DIR}/lib/libssl.a)
set(OPENSSL_LIBRARIES OpenSSL::Crypto OpenSSL::SSL)
endif()

message(STATUS "OpenSSL include dirs: ${OPENSSL_INCLUDE_DIR}")
message(STATUS "OpenSSL libraries: ${OPENSSL_LIBRARIES}")

0 comments on commit b72ea02

Please sign in to comment.