diff options
author | Ezekiel Smith <ezekielsmith@protonmail.com> | 2022-03-02 00:03:31 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-02 00:03:31 +1100 |
commit | e1f28be15128175467e8a44e9556223963fb56c1 (patch) | |
tree | 3c5c6367cc585266d9201a5f2aea951f237cc0b4 /CMakeLists.txt | |
parent | 139ff82432897e68bddab9ed8e9aec89c174d0fe (diff) | |
parent | 5d1ca33b84afee9f09093c27f2eff525325d08cb (diff) | |
download | PrismLauncher-e1f28be15128175467e8a44e9556223963fb56c1.tar.gz PrismLauncher-e1f28be15128175467e8a44e9556223963fb56c1.tar.bz2 PrismLauncher-e1f28be15128175467e8a44e9556223963fb56c1.zip |
Merge pull request #163 from txtsd/windows_data_dir
Replace build layouts with Launcher_PORTABLE cmake flag
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 81 |
1 files changed, 30 insertions, 51 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 003aa65d..c370b6ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,25 +146,11 @@ add_subdirectory(program_info) ####################################### Install layout ####################################### -# How to install the build results -set(Launcher_LAYOUT "auto" CACHE STRING "The layout for the launcher installation (auto, win-bundle, lin-nodeps, lin-system, mac-bundle)") -set_property(CACHE Launcher_LAYOUT PROPERTY STRINGS auto win-bundle lin-nodeps lin-system mac-bundle) - -if(Launcher_LAYOUT STREQUAL "auto") - if(UNIX AND APPLE) - set(Launcher_LAYOUT_REAL "mac-bundle") - elseif(UNIX) - set(Launcher_LAYOUT_REAL "lin-nodeps") - elseif(WIN32) - set(Launcher_LAYOUT_REAL "win-bundle") - else() - message(FATAL_ERROR "Cannot choose a sensible install layout for your platform.") - endif() -else() - set(Launcher_LAYOUT_REAL ${Launcher_LAYOUT}) -endif() +# Install the build results according to platform +set(Launcher_PORTABLE 1 CACHE BOOL "The type of installation (Portable or System)") + -if(Launcher_LAYOUT_REAL STREQUAL "mac-bundle") +if(UNIX AND APPLE) set(BINARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS") set(LIBRARY_DEST_DIR "${Launcher_Name}.app/Contents/MacOS") set(PLUGIN_DEST_DIR "${Launcher_Name}.app/Contents/MacOS") @@ -195,47 +181,40 @@ if(Launcher_LAYOUT_REAL STREQUAL "mac-bundle") # Add the icon install(FILES ${Launcher_Branding_ICNS} DESTINATION ${RESOURCES_DEST_DIR} RENAME ${Launcher_Name}.icns) -elseif(Launcher_LAYOUT_REAL STREQUAL "lin-nodeps") +elseif(UNIX) set(BINARY_DEST_DIR "bin") - set(LIBRARY_DEST_DIR "bin") - set(PLUGIN_DEST_DIR "plugins") - set(BUNDLE_DEST_DIR ".") - set(RESOURCES_DEST_DIR ".") - set(JARS_DEST_DIR "bin/jars") - - # install as bundle with no dependencies included - set(INSTALL_BUNDLE "nodeps") - - # Set RPATH - SET(Launcher_BINARY_RPATH "$ORIGIN/") - - # Install basic runner script - configure_file(launcher/Launcher.in "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" @ONLY) - install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" DESTINATION ${BUNDLE_DEST_DIR} RENAME ${Launcher_Name}) + if(Launcher_PORTABLE) + set(LIBRARY_DEST_DIR "bin") + set(BUNDLE_DEST_DIR ".") + set(JARS_DEST_DIR "bin/jars") -elseif(Launcher_LAYOUT_REAL STREQUAL "lin-system") - set(Launcher_BINARY_DEST_DIR "bin" CACHE STRING "Path to the binary directory") - set(Launcher_LIBRARY_DEST_DIR "lib${LIB_SUFFIX}" CACHE STRING "Path to the library directory") - set(Launcher_SHARE_DEST_DIR "share/polymc" CACHE STRING "Path to the shared data directory") - set(JARS_DEST_DIR "${Launcher_SHARE_DEST_DIR}/jars") - set(Launcher_DESKTOP_DEST_DIR "share/applications" CACHE STRING "Path to the desktop file directory") - set(Launcher_METAINFO_DEST_DIR "share/metainfo" CACHE STRING "Path to the metainfo directory") - set(Launcher_ICON_DEST_DIR "share/icons/hicolor/scalable/apps" CACHE STRING "Path to the scalable icon directory") + # launcher/Application.cpp will use this value + set(Launcher_APP_BINARY_DEFS "-DLAUNCHER_PORTABLE") - set(BINARY_DEST_DIR ${Launcher_BINARY_DEST_DIR}) - set(LIBRARY_DEST_DIR ${Launcher_LIBRARY_DEST_DIR}) + # Install basic runner script + configure_file(launcher/Launcher.in "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" @ONLY) + install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" DESTINATION ${BUNDLE_DEST_DIR} RENAME ${Launcher_Name}) + else() + set(LIBRARY_DEST_DIR "lib${LIB_SUFFIX}") + set(JARS_DEST_DIR "share/jars") + set(LAUNCHER_DESKTOP_DEST_DIR "share/applications" CACHE STRING "Path to the desktop file directory") + set(LAUNCHER_METAINFO_DEST_DIR "share/metainfo" CACHE STRING "Path to the metainfo directory") + set(LAUNCHER_ICON_DEST_DIR "share/icons/hicolor/scalable/apps" CACHE STRING "Path to the scalable icon directory") - MESSAGE(STATUS "Compiling for linux system with ${Launcher_SHARE_DEST_DIR} and LAUNCHER_LINUX_DATADIR") - SET(Launcher_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=${CMAKE_INSTALL_PREFIX}/${JARS_DEST_DIR}" "-DLAUNCHER_LINUX_DATADIR") + set(Launcher_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=${CMAKE_INSTALL_PREFIX}/${JARS_DEST_DIR}") - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_Desktop} DESTINATION ${Launcher_DESKTOP_DEST_DIR}) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_MetaInfo} DESTINATION ${Launcher_METAINFO_DEST_DIR}) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_SVG} DESTINATION ${Launcher_ICON_DEST_DIR}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_Desktop} DESTINATION ${LAUNCHER_DESKTOP_DEST_DIR}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_MetaInfo} DESTINATION ${LAUNCHER_METAINFO_DEST_DIR}) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_SVG} DESTINATION ${LAUNCHER_ICON_DEST_DIR}) + endif() # install as bundle with no dependencies included set(INSTALL_BUNDLE "nodeps") -elseif(Launcher_LAYOUT_REAL STREQUAL "win-bundle") + # Set RPATH + SET(Launcher_BINARY_RPATH "$ORIGIN/") + +elseif(WIN32) set(BINARY_DEST_DIR ".") set(LIBRARY_DEST_DIR ".") set(PLUGIN_DEST_DIR ".") @@ -252,7 +231,7 @@ elseif(Launcher_LAYOUT_REAL STREQUAL "win-bundle") # install as bundle set(INSTALL_BUNDLE "full") else() - message(FATAL_ERROR "No sensible install layout set.") + message(FATAL_ERROR "Platform not supported") endif() ################################ Included Libs ################################ |