Path: blob/main/Natives/CMakeLists.txt
589 views
cmake_minimum_required(VERSION 3.6)1project(PojavLauncher)23configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h.in ${CMAKE_CURRENT_LIST_DIR}/config.h)45# Using our build system, cmake doesn't respect -miphoneos-version-min=14.06# and instead overrides it with the macOS SDK version when compiled7# in Xcode on a Mac.8set(CMAKE_OSX_DEPLOYMENT_TARGET 14.0)910set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -target arm64-apple-ios -mcpu=apple-a8 -fcommon -fobjc-arc -ObjC -F'${CMAKE_OSX_SYSROOT}/System/Cryptexes/OS/System/Library/Frameworks'")11set(CMAKE_C_FLAGS_DEBUG "-funwind-tables -g")1213if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Linux|^GNU$|Android")14set(GLOBAL_LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -Wl,-syslibroot,${CMAKE_OSX_SYSROOT} -fuse-ld=lld")15set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GLOBAL_LDFLAGS}")16set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${GLOBAL_LDFLAGS}")17endif()1819include_directories(20"."21"external/AFNetworking/AFNetworking"22"external/AFNetworking/UIKit+AFNetworking"23"external/DBNumberedSlider/Classes"24"external/NRFileManager"25"external/UnzipKit"26"external/fishhook"27"external/lzma"28"external/mesa"29"external/AltKit"30"external/Apple"31"external/ballpa1n"32"external/ballpa1n/wrapped"33)3435# For cacio support library36set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rpath @loader_path -rpath @executable_path/java_runtimes/java-8-openjdk/lib -rpath /usr/lib/jvm/java-8-openjdk/lib")3738# EXT: stub library, delete after compile awt_xawt39add_library(awt_headless SHARED40awt_xawt/empty.m41)42target_link_libraries(awt_headless)4344# EXT: cacio support library45add_library(awt_xawt SHARED46awt_xawt/xawt_fake.m47)48target_link_libraries(awt_xawt49"-L'${CMAKE_CURRENT_LIST_DIR}/build'"50awt_headless51)5253set(CMAKE_FRAMEWORK_PATH "${CMAKE_CURRENT_LIST_DIR}/resources/Frameworks")5455set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rpath @executable_path/Frameworks -rpath @loader_path/Frameworks")56set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rpath @executable_path/Frameworks -rpath @loader_path/Frameworks")5758# ANGLE wrapper for 1.17+59add_library(tinygl4angle SHARED60external/gl4es/string_utils.c61external/gl4es/tinygl4angle.c62)63target_link_libraries(tinygl4angle64"${GLOBAL_LDFLAGS}"65"-F'${CMAKE_CURRENT_LIST_DIR}/resources/Frameworks'"66"-framework libEGL"67"-framework libGLESv2"68)6970# AFNetworking71add_library(AFNetworking SHARED72external/AFNetworking/AFNetworking/AFSecurityPolicy.m73external/AFNetworking/AFNetworking/AFHTTPSessionManager.m74external/AFNetworking/AFNetworking/AFURLRequestSerialization.m75external/AFNetworking/AFNetworking/AFURLSessionManager.m76external/AFNetworking/AFNetworking/AFNetworkReachabilityManager.m77external/AFNetworking/AFNetworking/AFURLResponseSerialization.m78external/AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m79external/AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.m80external/AFNetworking/UIKit+AFNetworking/AFImageDownloader.m81external/AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.m82external/AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.m83)84target_link_libraries(AFNetworking85"-framework CoreGraphics"86"-framework CoreServices"87"-framework Security"88"-framework SystemConfiguration"89"-framework UIKit"90)9192# MinecraftAccount JNI93add_library(PojavAccountJNI SHARED94authenticator/MinecraftAccountJNI.m95)96target_link_libraries(PojavAccountJNI)9798# PojavLauncher99add_executable(PojavLauncher100dyld_bypass_validation.m101dyld_patch_platform.m102main.m103main_hook.m104JavaLauncher.m105external/fishhook/fishhook.c106UIKit+hook.m107108authenticator/BaseAuthenticator.m109authenticator/LocalAuthenticator.m110authenticator/MicrosoftAuthenticator.m111112ctxbridges/gl_bridge.m113ctxbridges/osm_bridge.m114115customcontrols/ControlButton.m116customcontrols/ControlDrawer.m117customcontrols/ControlJoystick.m118customcontrols/ControlLayout.m119customcontrols/ControlSubButton.m120customcontrols/CustomControlsUtils.m121customcontrols/NSPredicateUtilitiesExternal.m122123external/DBNumberedSlider/Classes/DBNumberedSlider.m124external/NRFileManager/NSFileManager+NRFileManager.m125external/ballpa1n/HostManager.c126external/ballpa1n/wrapped/HostManagerBridge.m127128installer/FabricInstallViewController.m129installer/ForgeInstallViewController.m130installer/ModpackInstallViewController.m131installer/FabricUtils.m132installer/modpack/ModpackUtils.m133installer/modpack/ModpackAPI.m134installer/modpack/CurseForgeAPI.m135installer/modpack/ModrinthAPI.m136137input/ControllerInput.m138input/GyroInput.m139input/KeyboardInput.m140141AccountListViewController.m142AppDelegate.m143CustomControlsViewController.m144CustomControlsViewController+UndoManager.m145DownloadProgressViewController.m146FileListViewController.m147GameSurfaceView.m148JavaGUIViewController.m149LauncherMenuViewController.m150LauncherNavigationController.m151LauncherNewsViewController.m152LauncherPreferences.m153LauncherPreferencesViewController.m154LauncherPrefContCfgViewController.m155LauncherPrefGameDirViewController.m156LauncherPrefManageJREViewController.m157LauncherProfileEditorViewController.m158LauncherProfilesViewController.m159LauncherSplitViewController.m160MinecraftResourceDownloadTask.m161MinecraftResourceUtils.m162PickTextField.m163PLLogOutputView.m164PLPickerView.m165PLPreferences.m166PLPrefTableViewController.m167PLProfiles.m168SceneDelegate.m169SceneExternalDelegate.m170SurfaceViewController.m171SurfaceViewController+ExternalDisplay.m172SurfaceViewController+LogView.m173SurfaceViewController+Navigation.m174TrackedTextField.m175egl_bridge.m176input_bridge_v3.m177ios_uikit_bridge.m178utils.m179)180181if("${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Linux|^GNU$|Android")182target_sources(PojavLauncher PUBLIC non_darwin_utils.m)183endif()184185target_link_libraries(PojavLauncher186PUBLIC AFNetworking187lzma188"-F'${CMAKE_CURRENT_LIST_DIR}/build'"189"-F'${CMAKE_CURRENT_LIST_DIR}/resources/Frameworks'"190"-framework AltKit"191"-framework AuthenticationServices"192"-framework AVFoundation"193"-framework CAltKit"194"-framework CoreFoundation"195"-framework CoreGraphics"196"-framework CoreImage"197"-framework CoreMotion"198"-framework GameController"199"-framework IOKit"200"-framework QuartzCore"201"-framework UIKit"202"-framework UniformTypeIdentifiers"203"-framework UnzipKit"204"-framework WebKit"205"-weak_framework SafariServices"206)207set_target_properties(PojavLauncher PROPERTIES208MACOSX_BUNDLE TRUE209MACOSX_FRAMEWORK_IDENTIFIER org.cmake.ExecutableTarget210MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_LIST_DIR}/Info.plist")211212213