[cmake] CPMUtil: formatting, git_host, new repos, more system deps, libusb #392

Merged
crueter merged 12 commits from fix/new-repos into master 2025-09-08 19:21:39 +02:00
3 changed files with 12 additions and 16 deletions
Showing only changes of commit 094403d690 - Show all commits

View file

@ -48,12 +48,10 @@ endif()
# On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion # On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion
CMAKE_DEPENDENT_OPTION(ENABLE_SDL2 "Enable the SDL2 frontend" ON "NOT ANDROID" OFF) CMAKE_DEPENDENT_OPTION(ENABLE_SDL2 "Enable the SDL2 frontend" ON "NOT ANDROID" OFF)
set(EXT_DEFAULT ON) set(EXT_DEFAULT OFF)
# See https://github.com/llvm/llvm-project/issues/123946 if (MSVC OR ANDROID)
# OpenBSD va_list doesn't play nice with precompiled headers set(EXT_DEFAULT ON)
if (PLATFORM_FREEBSD OR PLATFORM_OPENBSD)
set(EXT_DEFAULT OFF)
endif() endif()
CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ${EXT_DEFAULT} "ENABLE_SDL2;NOT MSVC" OFF) CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ${EXT_DEFAULT} "ENABLE_SDL2;NOT MSVC" OFF)
@ -69,7 +67,7 @@ option(ENABLE_QT_UPDATE_CHECKER "Enable update checker for the Qt frontend" OFF)
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF) CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
option(YUZU_USE_CPM "Use CPM to fetch Eden dependencies if needed" ${EXT_DEFAULT}) option(YUZU_USE_CPM "Use CPM to fetch system dependencies (fmt, boost, etc) if needed. Externals will still be fetched." ${EXT_DEFAULT})
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON) option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF) option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF)
@ -95,6 +93,7 @@ option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ${EXT_DEFAULT}) option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ${EXT_DEFAULT})
# TODO(crueter): CI this?
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
option(FORCE_DOWNLOAD_WIN_BUNDLES "Forcefully download bundled Windows dependencies (useful for CI)" OFF) option(FORCE_DOWNLOAD_WIN_BUNDLES "Forcefully download bundled Windows dependencies (useful for CI)" OFF)

View file

@ -11,10 +11,11 @@
# Future crueter: Wow this was a lie and a half, at this point I might as well make my own CPN # Future crueter: Wow this was a lie and a half, at this point I might as well make my own CPN
# haha just kidding... unless? # haha just kidding... unless?
# TODO(crueter): Remember to get more than 6 hours of sleep whenever making giant cmake changes
if (MSVC OR ANDROID) if (MSVC OR ANDROID)
set(BUNDLED_DEFAULT OFF)
else()
set(BUNDLED_DEFAULT ON) set(BUNDLED_DEFAULT ON)
else()
set(BUNDLED_DEFAULT OFF)
endif() endif()
option(CPMUTIL_FORCE_BUNDLED option(CPMUTIL_FORCE_BUNDLED

12
docs/build/FreeBSD.md vendored
View file

@ -1,13 +1,7 @@
## One word of caution before proceeding. Eden is not currently available as a port on FreeBSD, though it is in the works. For now, the recommended method of usage is to compile it yourself. Check back often, as the build process frequently changes.
This is not the usual or preferred way to build programs on FreeBSD.
As of writing there is no official fresh port available for Eden, but it is in the works.
After it is available you can find a link to the eden-emu fresh port here and on Escary's github repo.
See this build as an AppImage alternative for FreeBSD.
## Dependencies. ## Dependencies.
Before we start we need some dependencies. Eden needs the following dependencies:
These dependencies are generally needed to build Eden on FreeBSD.
``` ```
devel/cmake devel/cmake
@ -22,6 +16,8 @@ devel/autoconf
devel/pkgconf devel/pkgconf
devel/qt6-base devel/qt6-base
net/enet
multimedia/ffnvcodec-headers multimedia/ffnvcodec-headers
multimedia/ffmpeg multimedia/ffmpeg