summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/cmake
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
commitd3261e64152397db2dca4d691a990c6bc2a6f4dd (patch)
treefac2f7be638651181a72453d714f0f96675c2b8b /archived/projt-launcher/cmake
parent31b9a8949ed0a288143e23bf739f2eb64fdc63be (diff)
downloadProject-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.tar.gz
Project-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.zip
NOISSUE add archived projects
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'archived/projt-launcher/cmake')
-rw-r--r--archived/projt-launcher/cmake/CompilerWarnings.cmake164
-rw-r--r--archived/projt-launcher/cmake/ECMQueryQt.cmake100
-rw-r--r--archived/projt-launcher/cmake/GetGitRevisionDescription.cmake284
-rw-r--r--archived/projt-launcher/cmake/GetGitRevisionDescription.cmake.in43
-rw-r--r--archived/projt-launcher/cmake/GitFunctions.cmake37
-rw-r--r--archived/projt-launcher/cmake/LauncherPackaging.cmake72
-rw-r--r--archived/projt-launcher/cmake/MacOSXBundleInfo.plist.in94
-rw-r--r--archived/projt-launcher/cmake/QtVersionOption.cmake38
-rw-r--r--archived/projt-launcher/cmake/QtVersionlessBackport.cmake97
-rw-r--r--archived/projt-launcher/cmake/findOpenSSLbyNuget.cmake34
-rw-r--r--archived/projt-launcher/cmake/useBZip2.cmake45
-rw-r--r--archived/projt-launcher/cmake/useCMark.cmake50
-rw-r--r--archived/projt-launcher/cmake/useLibpng.cmake48
-rw-r--r--archived/projt-launcher/cmake/useLibqrencode.cmake91
-rw-r--r--archived/projt-launcher/cmake/useMinimalLibs.cmake60
-rw-r--r--archived/projt-launcher/cmake/useMinizip.cmake26
-rw-r--r--archived/projt-launcher/cmake/usePTlibzippy.cmake96
-rw-r--r--archived/projt-launcher/cmake/useQuazip.cmake31
-rw-r--r--archived/projt-launcher/cmake/useTomlplusplus.cmake21
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/README.md3
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-args.patch13
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-python-dep.patch45
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/fix-libcpp-enable-assertions.patch52
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/install.cmake5
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson-intl.patch13
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson.template.in43
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/portfile.cmake45
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/remove-freebsd-pcfile-specialization.patch23
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/universal-osx.patch16
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg-port-config.cmake62
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg.json11
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake480
-rw-r--r--archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_install_meson.cmake71
-rw-r--r--archived/projt-launcher/cmake/vcpkg-triplets/universal-osx.cmake8
34 files changed, 2321 insertions, 0 deletions
diff --git a/archived/projt-launcher/cmake/CompilerWarnings.cmake b/archived/projt-launcher/cmake/CompilerWarnings.cmake
new file mode 100644
index 0000000000..e6b1a7415a
--- /dev/null
+++ b/archived/projt-launcher/cmake/CompilerWarnings.cmake
@@ -0,0 +1,164 @@
+#
+# Function to set compiler warnings with reasonable defaults at the project level.
+# Taken from https://github.com/aminya/project_options/blob/main/src/CompilerWarnings.cmake
+# under the folowing license:
+#
+# MIT License
+#
+# Copyright (c) 2022-2100 Amin Yahyaabadi
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+include_guard()
+
+function(_set_project_warnings_add_target_link_option TARGET OPTIONS)
+ target_link_options(${_project_name} INTERFACE ${OPTIONS})
+endfunction()
+
+# Set the compiler warnings
+#
+# https://clang.llvm.org/docs/DiagnosticsReference.html
+# https://github.com/lefticus/cppbestpractices/blob/master/02-Use_the_Tools_Available.md
+function(
+ set_project_warnings
+ _project_name
+ MSVC_WARNINGS
+ CLANG_WARNINGS
+ GCC_WARNINGS
+)
+ if("${MSVC_WARNINGS}" STREQUAL "")
+ set(MSVC_WARNINGS
+ /W4 # Baseline reasonable warnings
+ /w14242 # 'identifier': conversion from 'type1' to 'type1', possible loss of data
+ /w14254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
+ /w14263 # 'function': member function does not override any base class virtual member function
+ /w14265 # 'classname': class has virtual functions, but destructor is not virtual instances of this class may not
+ # be destructed correctly
+ /w14287 # 'operator': unsigned/negative constant mismatch
+ /we4289 # nonstandard extension used: 'variable': loop control variable declared in the for-loop is used outside
+ # the for-loop scope
+ /w14296 # 'operator': expression is always 'boolean_value'
+ /w14311 # 'variable': pointer truncation from 'type1' to 'type2'
+ /w14545 # expression before comma evaluates to a function which is missing an argument list
+ /w14546 # function call before comma missing argument list
+ /w14547 # 'operator': operator before comma has no effect; expected operator with side-effect
+ /w14549 # 'operator': operator before comma has no effect; did you intend 'operator'?
+ /w14555 # expression has no effect; expected expression with side- effect
+ /w14619 # pragma warning: there is no warning number 'number'
+ /w14640 # Enable warning on thread un-safe static member initialization
+ /w14826 # Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior.
+ /w14905 # wide string literal cast to 'LPSTR'
+ /w14906 # string literal cast to 'LPWSTR'
+ /w14928 # illegal copy-initialization; more than one user-defined conversion has been implicitly applied
+ /permissive- # standards conformance mode for MSVC compiler.
+
+ /we4062 # forbid omitting a possible value of an enum in a switch statement
+ )
+ endif()
+
+ if("${CLANG_WARNINGS}" STREQUAL "")
+ set(CLANG_WARNINGS
+ -Wall
+ -Wextra # reasonable and standard
+ -Wshadow # warn the user if a variable declaration shadows one from a parent context
+ -Wnon-virtual-dtor # warn the user if a class with virtual functions has a non-virtual destructor. This helps
+ # catch hard to track down memory errors
+ -Wold-style-cast # warn for c-style casts
+ -Wcast-align # warn for potential performance problem casts
+ -Wunused # warn on anything being unused
+ -Woverloaded-virtual # warn if you overload (not override) a virtual function
+ -Wpedantic # warn if non-standard C++ is used
+ -Wconversion # warn on type conversions that may lose data
+ -Wsign-conversion # warn on sign conversions
+ -Wnull-dereference # warn if a null dereference is detected
+ -Wdouble-promotion # warn if float is implicit promoted to double
+ -Wformat=2 # warn on security issues around functions that format output (ie printf)
+ -Wimplicit-fallthrough # warn on statements that fallthrough without an explicit annotation
+ # -Wgnu-zero-variadic-macro-arguments (part of -pedantic) is triggered by every qCDebug() call and therefore results
+ # in a lot of noise. This warning is only notifying us that clang is emulating the GCC behaviour
+ # instead of the exact standard wording so we can safely ignore it
+ -Wno-gnu-zero-variadic-macro-arguments
+
+ -Werror=switch # forbid omitting a possible value of an enum in a switch statement
+ )
+ endif()
+
+ if("${GCC_WARNINGS}" STREQUAL "")
+ set(GCC_WARNINGS
+ ${CLANG_WARNINGS}
+ -Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist
+ -Wduplicated-cond # warn if if / else chain has duplicated conditions
+ -Wduplicated-branches # warn if if / else branches have duplicated code
+ -Wlogical-op # warn about logical operations being used where bitwise were probably wanted
+ -Wuseless-cast # warn if you perform a cast to the same type
+
+ -Werror=switch # forbid omitting a possible value of an enum in a switch statement
+ )
+ endif()
+
+ if(MSVC)
+ set(PROJECT_WARNINGS_CXX ${MSVC_WARNINGS})
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
+ set(PROJECT_WARNINGS_CXX ${CLANG_WARNINGS})
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ set(PROJECT_WARNINGS_CXX ${GCC_WARNINGS})
+ list(REMOVE_ITEM PROJECT_WARNINGS_CXX -Wno-gnu-zero-variadic-macro-arguments)
+ else()
+ message(AUTHOR_WARNING "No compiler warnings set for CXX compiler: '${CMAKE_CXX_COMPILER_ID}'")
+ # TODO support Intel compiler
+ endif()
+
+ # Add C warnings
+ set(PROJECT_WARNINGS_C "${PROJECT_WARNINGS_CXX}")
+ list(
+ REMOVE_ITEM
+ PROJECT_WARNINGS_C
+ -Wnon-virtual-dtor
+ -Wold-style-cast
+ -Woverloaded-virtual
+ -Wuseless-cast
+ -Wextra-semi
+
+ -Werror=switch # forbid omitting a possible value of an enum in a switch statement
+ )
+
+ target_compile_options(
+ ${_project_name}
+ INTERFACE # C++ warnings
+ $<$<COMPILE_LANGUAGE:CXX>:${PROJECT_WARNINGS_CXX}>
+ # C warnings
+ $<$<COMPILE_LANGUAGE:C>:${PROJECT_WARNINGS_C}>
+ )
+
+ # If we are using the compiler as a linker driver pass the warnings to it
+ # (most useful when using LTO or warnings as errors)
+ if(CMAKE_CXX_LINK_EXECUTABLE MATCHES "^<CMAKE_CXX_COMPILER>")
+ _set_project_warnings_add_target_link_option(
+ ${_project_name} "$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_WARNINGS_CXX}>"
+ )
+ endif()
+
+ if(CMAKE_C_LINK_EXECUTABLE MATCHES "^<CMAKE_C_COMPILER>")
+ _set_project_warnings_add_target_link_option(
+ ${_project_name} "$<$<COMPILE_LANGUAGE:C>:${PROJECT_WARNINGS_C}>"
+ )
+ endif()
+
+ endfunction()
diff --git a/archived/projt-launcher/cmake/ECMQueryQt.cmake b/archived/projt-launcher/cmake/ECMQueryQt.cmake
new file mode 100644
index 0000000000..98eb50089e
--- /dev/null
+++ b/archived/projt-launcher/cmake/ECMQueryQt.cmake
@@ -0,0 +1,100 @@
+# SPDX-FileCopyrightText: 2014 Rohan Garg <rohan16garg@gmail.com>
+# SPDX-FileCopyrightText: 2014 Alex Merry <alex.merry@kde.org>
+# SPDX-FileCopyrightText: 2014-2016 Aleix Pol <aleixpol@kde.org>
+# SPDX-FileCopyrightText: 2017 Friedrich W. H. Kossebau <kossebau@kde.org>
+# SPDX-FileCopyrightText: 2022 Ahmad Samir <a.samir78@gmail.com>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#[=======================================================================[.rst:
+ECMQueryQt
+---------------
+This module can be used to query the installation paths used by Qt.
+
+For Qt5 this uses ``qmake``, and for Qt6 this used ``qtpaths`` (the latter has built-in
+support to query the paths of a target platform when cross-compiling).
+
+This module defines the following function:
+::
+
+ ecm_query_qt(<result_variable> <qt_variable> [TRY])
+
+Passing ``TRY`` will result in the method not making the build fail if the executable
+used for querying has not been found, but instead simply print a warning message and
+return an empty string.
+
+Example usage:
+
+.. code-block:: cmake
+
+ include(ECMQueryQt)
+ ecm_query_qt(bin_dir QT_INSTALL_BINS)
+
+If the call succeeds ``${bin_dir}`` will be set to ``<prefix>/path/to/bin/dir`` (e.g.
+``/usr/lib64/qt/bin/``).
+
+Since: 5.93
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/QtVersionOption.cmake)
+include(CheckLanguage)
+check_language(CXX)
+if (CMAKE_CXX_COMPILER)
+ # Enable the CXX language to let CMake look for config files in library dirs.
+ # See: https://gitlab.kitware.com/cmake/cmake/-/issues/23266
+ enable_language(CXX)
+endif()
+
+if (QT_MAJOR_VERSION STREQUAL "5")
+ # QUIET to accommodate the TRY option
+ find_package(Qt${QT_MAJOR_VERSION}Core QUIET)
+ if(TARGET Qt5::qmake)
+ get_target_property(_qmake_executable_default Qt5::qmake LOCATION)
+
+ set(QUERY_EXECUTABLE ${_qmake_executable_default}
+ CACHE FILEPATH "Location of the Qt5 qmake executable")
+ set(_exec_name_text "Qt5 qmake")
+ set(_cli_option "-query")
+ endif()
+elseif(QT_MAJOR_VERSION STREQUAL "6")
+ # QUIET to accommodate the TRY option
+ find_package(Qt6 COMPONENTS CoreTools QUIET CONFIG)
+ if (TARGET Qt6::qtpaths)
+ get_target_property(_qtpaths_executable Qt6::qtpaths LOCATION)
+
+ set(QUERY_EXECUTABLE ${_qtpaths_executable}
+ CACHE FILEPATH "Location of the Qt6 qtpaths executable")
+ set(_exec_name_text "Qt6 qtpaths")
+ set(_cli_option "--query")
+ endif()
+endif()
+
+function(ecm_query_qt result_variable qt_variable)
+ set(options TRY)
+ set(oneValueArgs)
+ set(multiValueArgs)
+
+ cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ if(NOT QUERY_EXECUTABLE)
+ if(ARGS_TRY)
+ set(${result_variable} "" PARENT_SCOPE)
+ message(STATUS "No ${_exec_name_text} executable found. Can't check ${qt_variable}")
+ return()
+ else()
+ message(FATAL_ERROR "No ${_exec_name_text} executable found. Can't check ${qt_variable} as required")
+ endif()
+ endif()
+ execute_process(
+ COMMAND ${QUERY_EXECUTABLE} ${_cli_option} "${qt_variable}"
+ RESULT_VARIABLE return_code
+ OUTPUT_VARIABLE output
+ )
+ if(return_code EQUAL 0)
+ string(STRIP "${output}" output)
+ file(TO_CMAKE_PATH "${output}" output_path)
+ set(${result_variable} "${output_path}" PARENT_SCOPE)
+ else()
+ message(WARNING "Failed call: ${_command} \"${qt_variable}\"")
+ message(FATAL_ERROR "${_exec_name_text} call failed: ${return_code}")
+ endif()
+endfunction()
diff --git a/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake b/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake
new file mode 100644
index 0000000000..4fbd90db79
--- /dev/null
+++ b/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake
@@ -0,0 +1,284 @@
+# - Returns a version string from Git
+#
+# These functions force a re-configure on each git commit so that you can
+# trust the values of the variables in your build system.
+#
+# get_git_head_revision(<refspecvar> <hashvar> [ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR])
+#
+# Returns the refspec and sha hash of the current head revision
+#
+# git_describe(<var> [<additional arguments to git describe> ...])
+#
+# Returns the results of git describe on the source tree, and adjusting
+# the output so that it tests false if an error occurs.
+#
+# git_describe_working_tree(<var> [<additional arguments to git describe> ...])
+#
+# Returns the results of git describe on the working tree (--dirty option),
+# and adjusting the output so that it tests false if an error occurs.
+#
+# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
+#
+# Returns the results of git describe --exact-match on the source tree,
+# and adjusting the output so that it tests false if there was no exact
+# matching tag.
+#
+# git_local_changes(<var>)
+#
+# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes.
+# Uses the return code of "git diff-index --quiet HEAD --".
+# Does not regard untracked files.
+#
+# Requires CMake 2.6 or newer (uses the 'function' command)
+#
+# Original Author:
+# 2009-2020 Ryan Pavlik <ryan.pavlik@gmail.com> <abiryan@ryand.net>
+# http://academic.cleardefinition.com
+#
+# Copyright 2009-2013, Iowa State University.
+# Copyright 2013-2020, Ryan Pavlik
+# Copyright 2013-2020, Contributors
+# SPDX-License-Identifier: BSL-1.0
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+if(__get_git_revision_description)
+ return()
+endif()
+set(__get_git_revision_description YES)
+
+# We must run the following at "include" time, not at function call time,
+# to find the path to this module rather than the path to a calling list file
+get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+# Function _git_find_closest_git_dir finds the next closest .git directory
+# that is part of any directory in the path defined by _start_dir.
+# The result is returned in the parent scope variable whose name is passed
+# as variable _git_dir_var. If no .git directory can be found, the
+# function returns an empty string via _git_dir_var.
+#
+# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and
+# neither foo nor bar contain a file/directory .git. This wil return
+# C:/bla/.git
+#
+function(_git_find_closest_git_dir _start_dir _git_dir_var)
+ set(cur_dir "${_start_dir}")
+ set(git_dir "${_start_dir}/.git")
+ while(NOT EXISTS "${git_dir}")
+ # .git dir not found, search parent directories
+ set(git_previous_parent "${cur_dir}")
+ get_filename_component(cur_dir "${cur_dir}" DIRECTORY)
+ if(cur_dir STREQUAL git_previous_parent)
+ # We have reached the root directory, we are not in git
+ set(${_git_dir_var}
+ ""
+ PARENT_SCOPE)
+ return()
+ endif()
+ set(git_dir "${cur_dir}/.git")
+ endwhile()
+ set(${_git_dir_var}
+ "${git_dir}"
+ PARENT_SCOPE)
+endfunction()
+
+function(get_git_head_revision _refspecvar _hashvar)
+ _git_find_closest_git_dir("${CMAKE_CURRENT_SOURCE_DIR}" GIT_DIR)
+
+ if("${ARGN}" STREQUAL "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR")
+ set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR TRUE)
+ else()
+ set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR FALSE)
+ endif()
+ if(NOT "${GIT_DIR}" STREQUAL "")
+ file(RELATIVE_PATH _relative_to_source_dir "${CMAKE_SOURCE_DIR}"
+ "${GIT_DIR}")
+ if("${_relative_to_source_dir}" MATCHES "[.][.]" AND NOT ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
+ # We've gone above the CMake root dir.
+ set(GIT_DIR "")
+ endif()
+ endif()
+ if("${GIT_DIR}" STREQUAL "")
+ set(${_refspecvar}
+ "GITDIR-NOTFOUND"
+ PARENT_SCOPE)
+ set(${_hashvar}
+ "GITDIR-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ # Check if the current source dir is a git submodule or a worktree.
+ # In both cases .git is a file instead of a directory.
+ #
+ if(NOT IS_DIRECTORY ${GIT_DIR})
+ # The following git command will return a non empty string that
+ # points to the super project working tree if the current
+ # source dir is inside a git submodule.
+ # Otherwise the command will return an empty string.
+ #
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" rev-parse
+ --show-superproject-working-tree
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT "${out}" STREQUAL "")
+ # If out is empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule
+ file(READ ${GIT_DIR} submodule)
+ string(REGEX REPLACE "gitdir: (.*)$" "\\1" GIT_DIR_RELATIVE
+ ${submodule})
+ string(STRIP ${GIT_DIR_RELATIVE} GIT_DIR_RELATIVE)
+ get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
+ get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE}
+ ABSOLUTE)
+ set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD")
+ else()
+ # GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree
+ file(READ ${GIT_DIR} worktree_ref)
+ # The .git directory contains a path to the worktree information directory
+ # inside the parent git repo of the worktree.
+ #
+ string(REGEX REPLACE "gitdir: (.*)$" "\\1" git_worktree_dir
+ ${worktree_ref})
+ string(STRIP ${git_worktree_dir} git_worktree_dir)
+ _git_find_closest_git_dir("${git_worktree_dir}" GIT_DIR)
+ set(HEAD_SOURCE_FILE "${git_worktree_dir}/HEAD")
+ endif()
+ else()
+ set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD")
+ endif()
+ set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
+ if(NOT EXISTS "${GIT_DATA}")
+ file(MAKE_DIRECTORY "${GIT_DATA}")
+ endif()
+
+ if(NOT EXISTS "${HEAD_SOURCE_FILE}")
+ return()
+ endif()
+ set(HEAD_FILE "${GIT_DATA}/HEAD")
+ configure_file("${HEAD_SOURCE_FILE}" "${HEAD_FILE}" COPYONLY)
+
+ configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
+ "${GIT_DATA}/grabRef.cmake" @ONLY)
+ include("${GIT_DATA}/grabRef.cmake")
+
+ set(${_refspecvar}
+ "${HEAD_REF}"
+ PARENT_SCOPE)
+ set(${_hashvar}
+ "${HEAD_HASH}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_describe _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var}
+ "HEAD-HASH-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ # TODO sanitize
+ #if((${ARGN}" MATCHES "&&") OR
+ # (ARGN MATCHES "||") OR
+ # (ARGN MATCHES "\\;"))
+ # message("Please report the following error to the project!")
+ # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
+ #endif()
+
+ #message(STATUS "Arguments to execute_process: ${ARGN}")
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" describe --tags --always ${hash} ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
+
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_describe_working_tree _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" describe --dirty ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
+
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_get_exact_tag _var)
+ git_describe(out --exact-match ${ARGN})
+ set(${_var}
+ "${out}"
+ PARENT_SCOPE)
+endfunction()
+
+function(git_local_changes _var)
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var}
+ "GIT-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var}
+ "HEAD-HASH-NOTFOUND"
+ PARENT_SCOPE)
+ return()
+ endif()
+
+ execute_process(
+ COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD --
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE out
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(res EQUAL 0)
+ set(${_var}
+ "CLEAN"
+ PARENT_SCOPE)
+ else()
+ set(${_var}
+ "DIRTY"
+ PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake.in b/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake.in
new file mode 100644
index 0000000000..116efc4e4e
--- /dev/null
+++ b/archived/projt-launcher/cmake/GetGitRevisionDescription.cmake.in
@@ -0,0 +1,43 @@
+#
+# Internal file for GetGitRevisionDescription.cmake
+#
+# Requires CMake 2.6 or newer (uses the 'function' command)
+#
+# Original Author:
+# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
+# http://academic.cleardefinition.com
+# Iowa State University HCI Graduate Program/VRAC
+#
+# Copyright 2009-2012, Iowa State University
+# Copyright 2011-2015, Contributors
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+# SPDX-License-Identifier: BSL-1.0
+
+set(HEAD_HASH)
+
+file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
+
+string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
+if(HEAD_CONTENTS MATCHES "ref")
+ # named branch
+ string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
+ if(EXISTS "@GIT_DIR@/${HEAD_REF}")
+ configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
+ else()
+ configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
+ file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
+ if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
+ set(HEAD_HASH "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+else()
+ # detached HEAD
+ configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
+endif()
+
+if(NOT HEAD_HASH)
+ file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
+ string(STRIP "${HEAD_HASH}" HEAD_HASH)
+endif()
diff --git a/archived/projt-launcher/cmake/GitFunctions.cmake b/archived/projt-launcher/cmake/GitFunctions.cmake
new file mode 100644
index 0000000000..a055b5de65
--- /dev/null
+++ b/archived/projt-launcher/cmake/GitFunctions.cmake
@@ -0,0 +1,37 @@
+if(__GITFUNCTIONS_CMAKE__)
+ return()
+endif()
+set(__GITFUNCTIONS_CMAKE__ TRUE)
+
+find_package(Git QUIET)
+
+include(CMakeParseArguments)
+
+if(GIT_FOUND)
+ function(git_run)
+ set(oneValueArgs OUTPUT_VAR DEFAULT)
+ set(multiValueArgs COMMAND)
+ cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ execute_process(COMMAND ${GIT_EXECUTABLE} ${GIT_RUN_COMMAND}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ RESULT_VARIABLE GIT_RESULTVAR
+ OUTPUT_VARIABLE GIT_OUTVAR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ if(GIT_RESULTVAR EQUAL 0)
+ set(${GIT_RUN_OUTPUT_VAR} "${GIT_OUTVAR}" PARENT_SCOPE)
+ else()
+ set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
+ message(STATUS "Failed to run Git: ${GIT_OUTVAR}")
+ endif()
+ endfunction()
+else()
+ function(git_run)
+ set(oneValueArgs OUTPUT_VAR DEFAULT)
+ set(multiValueArgs COMMAND)
+ cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
+ endfunction(git_run)
+endif()
diff --git a/archived/projt-launcher/cmake/LauncherPackaging.cmake b/archived/projt-launcher/cmake/LauncherPackaging.cmake
new file mode 100644
index 0000000000..569a316c4e
--- /dev/null
+++ b/archived/projt-launcher/cmake/LauncherPackaging.cmake
@@ -0,0 +1,72 @@
+set(Launcher_PackageName "projtlauncher" CACHE STRING "Package name for distro packages")
+set(Launcher_PackageVendor "Project Tick" CACHE STRING "Package vendor for distro packages")
+set(Launcher_PackageContact "Project Tick" CACHE STRING "Package contact/maintainer")
+set(Launcher_PackageDescription "${Launcher_DisplayName} - Minecraft Launcher" CACHE STRING "Package description summary")
+
+set(Launcher_ARCH_MAINTAINER "Mehmet Samet Duman <yongdohyun@mail.projecttick.org>" CACHE STRING "PKGBUILD maintainer")
+set(Launcher_ARCH_PKGREL "2" CACHE STRING "PKGBUILD pkgrel")
+set(Launcher_ARCH_PKGDESC "A Minecraft launcher and automation stack for long-term project health. " CACHE STRING "PKGBUILD description")
+set(Launcher_ARCH_URL "https://projecttick.org" CACHE STRING "PKGBUILD URL")
+set(Launcher_ARCH_ARCHS "x86_64 aarch64" CACHE STRING "PKGBUILD arch list")
+set(Launcher_ARCH_LICENSES "GPL-3.0-only AND LGPL-3.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 AND MIT AND LicenseRef-Batch AND OFL-1.1 AND Zlib AND bzip2"
+ CACHE STRING "PKGBUILD license string")
+set(Launcher_ARCH_DEPENDS "gcc-libs glibc hicolor-icon-theme java-runtime=17 java-runtime=21 libgl qt6-5compat qt6-base qt6-imageformats qt6-networkauth qt6-svg"
+ CACHE STRING "Space-separated Arch Linux dependencies for PKGBUILD")
+set(Launcher_ARCH_MAKEDEPENDS "cmake ghc-filesystem git jdk21-openjdk scdoc"
+ CACHE STRING "Space-separated Arch Linux makedepends for PKGBUILD")
+set(Launcher_ARCH_OPTDEPENDS "'glfw: to use system GLFW libraries' 'openal: to use system OpenAL libraries' 'visualvm: Profiling support' 'xorg-xrandr: for older minecraft versions' 'java-runtime=8: for older minecraft versions' 'flite: minecraft voice narration'"
+ CACHE STRING "Quoted Arch Linux optdepends entries for PKGBUILD")
+set(Launcher_ARCH_SHA256SUMS "'SKIP' '2ee3ba8d96e9882150783b6444651ea4a65d779532ecac8646f2ecd3a48c2770' '009e25d32aab6dbae193aac4b82fa1a26cb07f288225b2906da425a0f219bc4c' '32646946afc31ef5a4ce2cbb5a5a68a9f552c540a78ef23344c51c3efca58fa6'"
+ CACHE STRING "Quoted sha256sums list for PKGBUILD")
+
+set(CPACK_PACKAGE_NAME "${Launcher_PackageName}")
+set(CPACK_PACKAGE_VENDOR "${Launcher_PackageVendor}")
+set(CPACK_PACKAGE_CONTACT "${Launcher_PackageContact}")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${Launcher_PackageDescription}")
+
+set(CPACK_PACKAGE_VERSION "${Launcher_VERSION_NAME}")
+set(CPACK_PACKAGE_VERSION_MAJOR "${Launcher_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${Launcher_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${Launcher_VERSION_PATCH}")
+
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.md")
+set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
+# Only override the install prefix during packaging (not regular installs).
+# Using CPACK_SET_DESTDIR=OFF makes CPack apply CPACK_PACKAGING_INSTALL_PREFIX
+# instead of CMAKE_INSTALL_PREFIX.
+set(CPACK_SET_DESTDIR OFF)
+set(CPACK_COMPONENTS_ALL Runtime Development)
+
+# Debian packaging
+set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${Launcher_PackageContact}")
+set(CPACK_DEBIAN_PACKAGE_SECTION "games")
+set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+if(DEFINED Launcher_DEB_DEPENDS AND NOT Launcher_DEB_DEPENDS STREQUAL "")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "${Launcher_DEB_DEPENDS}")
+endif()
+
+# Fedora / RPM packaging
+set(CPACK_RPM_PACKAGE_LICENSE "GPL-3.0-only")
+set(CPACK_RPM_PACKAGE_GROUP "Games")
+set(CPACK_RPM_PACKAGE_AUTOREQ ON)
+set(CPACK_RPM_COMPONENT_INSTALL ON)
+set(CPACK_RPM_MAIN_COMPONENT Runtime)
+set(CPACK_RPM_DEVELOPMENT_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-devel")
+set(CPACK_RPM_DEVELOPMENT_PACKAGE_SUMMARY "${CPACK_PACKAGE_NAME} development files")
+set(CPACK_RPM_DEVELOPMENT_PACKAGE_REQUIRES "${CPACK_PACKAGE_NAME} = ${CPACK_PACKAGE_VERSION}")
+if(DEFINED Launcher_RPM_REQUIRES AND NOT Launcher_RPM_REQUIRES STREQUAL "")
+ set(CPACK_RPM_PACKAGE_REQUIRES "${Launcher_RPM_REQUIRES}")
+endif()
+
+# Source RPMs are generated via CPackSourceConfig.cmake (cpack -G RPM --config CPackSourceConfig.cmake)
+set(CPACK_SOURCE_RPM ON)
+
+# Generate PKGBUILD template for Arch
+set(_arch_pkgbuild_in "${CMAKE_CURRENT_SOURCE_DIR}/packaging/arch/PKGBUILD.in")
+if(EXISTS "${_arch_pkgbuild_in}")
+ set(_arch_pkgbuild_out "${CMAKE_CURRENT_BINARY_DIR}/packaging/arch/PKGBUILD")
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/packaging/arch")
+ configure_file("${_arch_pkgbuild_in}" "${_arch_pkgbuild_out}" @ONLY)
+endif()
+
+include(CPack)
diff --git a/archived/projt-launcher/cmake/MacOSXBundleInfo.plist.in b/archived/projt-launcher/cmake/MacOSXBundleInfo.plist.in
new file mode 100644
index 0000000000..fe90af76cd
--- /dev/null
+++ b/archived/projt-launcher/cmake/MacOSXBundleInfo.plist.in
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>NSCameraUsageDescription</key>
+ <string>A Minecraft mod wants to access your camera.</string>
+ <key>NSMicrophoneUsageDescription</key>
+ <string>A Minecraft mod wants to access your microphone.</string>
+ <key>NSDownloadsFolderUsageDescription</key>
+ <string>${Launcher_DisplayName} uses access to your Downloads folder to help you more quickly add mods that can't be automatically downloaded to your instance. You can change where ${Launcher_DisplayName} scans for downloaded mods in Settings or the prompt that appears.</string>
+ <key>NSLocalNetworkUsageDescription</key>
+ <string>Minecraft uses the local network to find and connect to LAN servers.</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>NSHighResolutionCapable</key>
+ <string>True</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
+ <key>CFBundleGetInfoString</key>
+ <string>${MACOSX_BUNDLE_INFO_STRING}</string>
+ <key>CFBundleIconFile</key>
+ <string>${MACOSX_BUNDLE_ICON_FILE}</string>
+ <key>CFBundleIdentifier</key>
+ <string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleLongVersionString</key>
+ <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
+ <key>CFBundleName</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+ <key>LSRequiresCarbon</key>
+ <true/>
+ <key>NSHumanReadableCopyright</key>
+ <string>${MACOSX_BUNDLE_COPYRIGHT}</string>
+ <key>SUPublicEDKey</key>
+ <string>${MACOSX_SPARKLE_UPDATE_PUBLIC_KEY}</string>
+ <key>SUFeedURL</key>
+ <string>${MACOSX_SPARKLE_UPDATE_FEED_URL}</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>zip</string>
+ <string>mrpack</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>${Launcher_DisplayName} instance</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>TEXT</string>
+ <string>utxt</string>
+ <string>TUTX</string>
+ <string>****</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSHandlerRank</key>
+ <string>Alternate</string>
+ </dict>
+ </array>
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>Curseforge</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>curseforge</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>${Launcher_Name}</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
+ </array>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/archived/projt-launcher/cmake/QtVersionOption.cmake b/archived/projt-launcher/cmake/QtVersionOption.cmake
new file mode 100644
index 0000000000..1390f9db60
--- /dev/null
+++ b/archived/projt-launcher/cmake/QtVersionOption.cmake
@@ -0,0 +1,38 @@
+#.rst:
+# QtVersionOption
+# ---------------
+#
+# Adds a build option to select the major Qt version if necessary,
+# that is, if the major Qt version has not yet been determined otherwise
+# (e.g. by a corresponding find_package() call).
+#
+# This module is typically included by other modules requiring knowledge
+# about the major Qt version.
+#
+# ``QT_MAJOR_VERSION`` is defined to either be "5" or "6".
+#
+#
+# Since 5.82.0.
+
+#=============================================================================
+# SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
+if (DEFINED QT_MAJOR_VERSION)
+ return()
+endif()
+
+if (TARGET Qt5::Core)
+ set(QT_MAJOR_VERSION 5)
+elseif (TARGET Qt6::Core)
+ set(QT_MAJOR_VERSION 6)
+else()
+ option(BUILD_WITH_QT6 "Build against Qt 6" OFF)
+
+ if (BUILD_WITH_QT6)
+ set(QT_MAJOR_VERSION 6)
+ else()
+ set(QT_MAJOR_VERSION 5)
+ endif()
+endif()
diff --git a/archived/projt-launcher/cmake/QtVersionlessBackport.cmake b/archived/projt-launcher/cmake/QtVersionlessBackport.cmake
new file mode 100644
index 0000000000..46792db580
--- /dev/null
+++ b/archived/projt-launcher/cmake/QtVersionlessBackport.cmake
@@ -0,0 +1,97 @@
+#=============================================================================
+# Copyright 2005-2011 Kitware, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Kitware, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+# From Qt5CoreMacros.cmake
+
+function(qt_generate_moc)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_generate_moc(${ARGV})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_generate_moc(${ARGV})
+ endif()
+endfunction()
+
+function(qt_wrap_cpp outfiles)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_wrap_cpp("${outfiles}" ${ARGN})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_wrap_cpp("${outfiles}" ${ARGN})
+ endif()
+ set("${outfiles}" "${${outfiles}}" PARENT_SCOPE)
+endfunction()
+
+function(qt_add_binary_resources)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_add_binary_resources(${ARGV})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_add_binary_resources(${ARGV})
+ endif()
+endfunction()
+
+function(qt_add_resources outfiles)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_add_resources("${outfiles}" ${ARGN})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_add_resources("${outfiles}" ${ARGN})
+ endif()
+ set("${outfiles}" "${${outfiles}}" PARENT_SCOPE)
+endfunction()
+
+function(qt_add_big_resources outfiles)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_add_big_resources(${outfiles} ${ARGN})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_add_big_resources(${outfiles} ${ARGN})
+ endif()
+ set("${outfiles}" "${${outfiles}}" PARENT_SCOPE)
+endfunction()
+
+function(qt_import_plugins)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_import_plugins(${ARGV})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_import_plugins(${ARGV})
+ endif()
+endfunction()
+
+
+# From Qt5WidgetsMacros.cmake
+
+function(qt_wrap_ui outfiles)
+ if(QT_VERSION_MAJOR EQUAL 5)
+ qt5_wrap_ui("${outfiles}" ${ARGN})
+ elseif(QT_VERSION_MAJOR EQUAL 6)
+ qt6_wrap_ui("${outfiles}" ${ARGN})
+ endif()
+ set("${outfiles}" "${${outfiles}}" PARENT_SCOPE)
+endfunction()
+
diff --git a/archived/projt-launcher/cmake/findOpenSSLbyNuget.cmake b/archived/projt-launcher/cmake/findOpenSSLbyNuget.cmake
new file mode 100644
index 0000000000..d4c8044b50
--- /dev/null
+++ b/archived/projt-launcher/cmake/findOpenSSLbyNuget.cmake
@@ -0,0 +1,34 @@
+function(projt_find_openssl_by_nuget)
+ # Find OpenSSL from NuGet
+ file(GLOB NUGET_OSSL_ROOTS "${CMAKE_SOURCE_DIR}/dependencies/openssl-native*")
+ if(NUGET_OSSL_ROOTS)
+ list(GET NUGET_OSSL_ROOTS 0 OSSL_ROOT_DIR)
+ message(STATUS "Found OpenSSL NuGet: ${OSSL_ROOT_DIR}")
+ set(OPENSSL_ROOT_DIR "${OSSL_ROOT_DIR}/build/native" CACHE PATH "" FORCE)
+ set(OPENSSL_USE_STATIC_LIBS ON)
+
+ file(GLOB_RECURSE OSSL_LIBS "${OSSL_ROOT_DIR}/*.lib")
+ foreach(LIB_PATH ${OSSL_LIBS})
+ # Strictly match architecture folder to avoid win-x86
+ if(LIB_PATH MATCHES "win-${OSSL_ARCH}" OR LIB_PATH MATCHES "/${OSSL_ARCH}/")
+ if(LIB_PATH MATCHES "libcrypto.lib$|crypto.lib$")
+ if(NOT LIB_PATH MATCHES "[Dd]ebug" OR NOT OPENSSL_CRYPTO_LIBRARY)
+ set(OPENSSL_CRYPTO_LIBRARY "${LIB_PATH}" CACHE FILEPATH "" FORCE)
+ endif()
+ elseif(LIB_PATH MATCHES "libssl.lib$|ssl.lib$")
+ if(NOT LIB_PATH MATCHES "[Dd]ebug" OR NOT OPENSSL_SSL_LIBRARY)
+ set(OPENSSL_SSL_LIBRARY "${LIB_PATH}" CACHE FILEPATH "" FORCE)
+ endif()
+ endif()
+ endif()
+ endforeach()
+
+ if(OPENSSL_CRYPTO_LIBRARY AND OPENSSL_SSL_LIBRARY)
+ set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include" CACHE PATH "" FORCE)
+ set(OPENSSL_LIBRARIES "${OPENSSL_SSL_LIBRARY}" "${OPENSSL_CRYPTO_LIBRARY}" CACHE STRING "" FORCE)
+ message(STATUS "Found OpenSSL via NuGet: ${OPENSSL_CRYPTO_LIBRARY}")
+ set(OpenSSL_FOUND TRUE CACHE BOOL "" FORCE)
+ set(OPENSSL_FOUND TRUE CACHE BOOL "" FORCE)
+ endif()
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/useBZip2.cmake b/archived/projt-launcher/cmake/useBZip2.cmake
new file mode 100644
index 0000000000..23a6d93723
--- /dev/null
+++ b/archived/projt-launcher/cmake/useBZip2.cmake
@@ -0,0 +1,45 @@
+function(projt_add_bzip2)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/CMakeLists.txt")
+ message(STATUS "Using bundled bzip2")
+ set(ENABLE_LIB_ONLY ON CACHE BOOL "" FORCE)
+ set(ENABLE_TESTS OFF CACHE BOOL "" FORCE)
+ set(ENABLE_DOCS OFF CACHE BOOL "" FORCE)
+ set(ENABLE_EXAMPLES OFF CACHE BOOL "" FORCE)
+ # Disable shared library and use static library for consistent linking
+ set(ENABLE_SHARED_LIB OFF CACHE BOOL "" FORCE)
+ set(ENABLE_STATIC_LIB ON CACHE BOOL "" FORCE)
+ # Disable instrumentation for external dependencies to avoid linker issues
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("bzip2")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../bzip2 bzip2)
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+ set(BZIP2_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2" CACHE PATH "" FORCE)
+ # Provide compatibility for CMake's FindBZip2 and consumers that expect
+ # BZip2 variables when using the bundled bzip2 implementation.
+ if(NOT TARGET BZip2::BZip2)
+ add_library(BZip2::BZip2 ALIAS bz2_static)
+ endif()
+ set(BZIP2_FOUND TRUE CACHE BOOL "" FORCE)
+ set(BZIP2_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../bzip2" CACHE PATH "" FORCE)
+ set(BZIP2_LIBRARIES bz2_static CACHE STRING "" FORCE)
+ else()
+ message(FATAL_ERROR "Bundled bzip2 not found")
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/useCMark.cmake b/archived/projt-launcher/cmake/useCMark.cmake
new file mode 100644
index 0000000000..079dd9b544
--- /dev/null
+++ b/archived/projt-launcher/cmake/useCMark.cmake
@@ -0,0 +1,50 @@
+function(projt_add_cmark)
+ set(_launcher_prev_cmark_build_shared_libs "")
+ set(_launcher_cmark_build_shared_libs_set FALSE)
+ if(DEFINED BUILD_SHARED_LIBS)
+ set(_launcher_prev_cmark_build_shared_libs "${BUILD_SHARED_LIBS}")
+ set(_launcher_cmark_build_shared_libs_set TRUE)
+ endif()
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
+ set(CMARK_SHARED OFF CACHE BOOL "" FORCE)
+ set(CMARK_STATIC ON CACHE BOOL "" FORCE)
+ set(_launcher_prev_cmark_osx_arch "${CMAKE_OSX_ARCHITECTURES}")
+ if(APPLE
+ AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64|aarch64"
+ AND CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
+ set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")
+ endif()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("cmark")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../cmark cmark)
+ projt_pop_output_dirs()
+ if(_launcher_cmark_build_shared_libs_set)
+ set(BUILD_SHARED_LIBS "${_launcher_prev_cmark_build_shared_libs}" CACHE BOOL "" FORCE)
+ else()
+ unset(BUILD_SHARED_LIBS CACHE)
+ endif()
+ unset(_launcher_prev_cmark_build_shared_libs)
+ unset(_launcher_cmark_build_shared_libs_set)
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+ if(DEFINED _launcher_prev_cmark_osx_arch)
+ set(CMAKE_OSX_ARCHITECTURES "${_launcher_prev_cmark_osx_arch}")
+ unset(_launcher_prev_cmark_osx_arch)
+ endif()
+ if(TARGET cmark AND NOT TARGET cmark::cmark)
+ add_library(cmark::cmark ALIAS cmark)
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/useLibpng.cmake b/archived/projt-launcher/cmake/useLibpng.cmake
new file mode 100644
index 0000000000..ebb2d2034f
--- /dev/null
+++ b/archived/projt-launcher/cmake/useLibpng.cmake
@@ -0,0 +1,48 @@
+function(projt_add_libpng)
+ # Ensure libpng install rules are enabled even if other deps toggled them.
+ set(SKIP_INSTALL_ALL OFF CACHE BOOL "" FORCE)
+ set(SKIP_INSTALL_LIBRARIES OFF CACHE BOOL "" FORCE)
+ set(PNG_SHARED ON CACHE BOOL "" FORCE)
+ set(PNG_STATIC OFF CACHE BOOL "" FORCE)
+ # Avoid loading both libpng16d and system libpng16 in Debug builds.
+ set(PNG_DEBUG_POSTFIX "" CACHE STRING "" FORCE)
+ set(PNG_TESTS OFF CACHE BOOL "" FORCE)
+ set(PNG_TOOLS OFF CACHE BOOL "" FORCE)
+ set(PNG_EXECUTABLES OFF CACHE BOOL "" FORCE)
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("libpng")
+ projt_push_autogen_disabled()
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libpng libpng)
+ projt_pop_autogen_disabled()
+ projt_pop_output_dirs()
+ foreach(_projt_png_target png_shared png_static png_framework)
+ if(TARGET ${_projt_png_target})
+ target_compile_definitions(
+ ${_projt_png_target}
+ PRIVATE adler32=ptpng_adler32
+ crc32=ptpng_crc32
+ deflate=ptpng_deflate
+ deflateInit2_=ptpng_deflateInit2_
+ deflateReset=ptpng_deflateReset
+ inflate=ptpng_inflate
+ inflateInit2_=ptpng_inflateInit2_
+ inflateReset=ptpng_inflateReset
+ inflateReset2=ptpng_inflateReset2)
+ endif()
+ endforeach()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/useLibqrencode.cmake b/archived/projt-launcher/cmake/useLibqrencode.cmake
new file mode 100644
index 0000000000..268ff019f2
--- /dev/null
+++ b/archived/projt-launcher/cmake/useLibqrencode.cmake
@@ -0,0 +1,91 @@
+function(projt_add_libqrencode)
+ # Avoid optional tools/tests that require getopt/PNG on Windows.
+ if(WIN32)
+ set(_qrencode_prev_build_shared_libs "${BUILD_SHARED_LIBS}")
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
+ set(ENABLE_SHARED OFF CACHE BOOL "" FORCE)
+ set(ENABLE_STATIC ON CACHE BOOL "" FORCE)
+ endif()
+ set(WITH_TOOLS OFF CACHE BOOL "" FORCE)
+ set(WITH_PNG OFF CACHE BOOL "" FORCE)
+ set(_launcher_prev_build_testing "${BUILD_TESTING}")
+ set(_launcher_prev_with_tests "")
+ set(_launcher_with_tests_set FALSE)
+ if(DEFINED WITH_TESTS)
+ set(_launcher_prev_with_tests "${WITH_TESTS}")
+ set(_launcher_with_tests_set TRUE)
+ endif()
+ set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
+ set(WITH_TESTS OFF CACHE BOOL "" FORCE)
+ set(_qrencode_prev_install_libdir "")
+ set(_qrencode_install_libdir_set FALSE)
+ if(APPLE)
+ set(_qrencode_bundle_dir "ProjTLauncher.app/Contents/Frameworks")
+ if(DEFINED Launcher_Name AND NOT Launcher_Name STREQUAL "")
+ set(_qrencode_bundle_dir "${Launcher_Name}.app/Contents/Frameworks")
+ endif()
+ if(DEFINED CMAKE_INSTALL_LIBDIR)
+ set(_qrencode_prev_install_libdir "${CMAKE_INSTALL_LIBDIR}")
+ set(_qrencode_install_libdir_set TRUE)
+ endif()
+ set(CMAKE_INSTALL_LIBDIR "${_qrencode_bundle_dir}" CACHE PATH "" FORCE)
+ endif()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("libqrencode")
+ projt_push_autogen_disabled()
+ set(PROJT_DISABLE_SUMMARY ON CACHE BOOL "" FORCE)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode libqrencode)
+ projt_pop_autogen_disabled()
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+ if(APPLE)
+ if(_qrencode_install_libdir_set)
+ set(CMAKE_INSTALL_LIBDIR "${_qrencode_prev_install_libdir}" CACHE PATH "" FORCE)
+ else()
+ unset(CMAKE_INSTALL_LIBDIR CACHE)
+ endif()
+ endif()
+ if(WIN32)
+ set(BUILD_SHARED_LIBS "${_qrencode_prev_build_shared_libs}" CACHE BOOL "" FORCE)
+ endif()
+ set(BUILD_TESTING "${_launcher_prev_build_testing}" CACHE BOOL "" FORCE)
+ if(_launcher_with_tests_set)
+ set(WITH_TESTS "${_launcher_prev_with_tests}" CACHE BOOL "" FORCE)
+ else()
+ unset(WITH_TESTS CACHE)
+ endif()
+ unset(_launcher_prev_build_testing)
+ unset(_launcher_prev_with_tests)
+ unset(_launcher_with_tests_set)
+ unset(_qrencode_prev_install_libdir)
+ unset(_qrencode_install_libdir_set)
+ add_library(qrcodegenerator ALIAS qrencode)
+ # Ensure the qrencode target exposes include directories so consumers can find qrencode.h
+ if(TARGET qrencode)
+ get_target_property(_qr_inc qrencode INTERFACE_INCLUDE_DIRECTORIES)
+ if(NOT _qr_inc)
+ target_include_directories(qrencode PUBLIC
+ "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/src"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/lib"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/include")
+ endif()
+ endif()
+ if(NOT DEFINED QRENCODE_INC OR QRENCODE_INC STREQUAL "")
+ set(QRENCODE_INC "${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode;${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/include;${CMAKE_CURRENT_SOURCE_DIR}/../libqrencode/lib" CACHE PATH "QRENCODE include dir" FORCE)
+ endif()
+endfunction()
diff --git a/archived/projt-launcher/cmake/useMinimalLibs.cmake b/archived/projt-launcher/cmake/useMinimalLibs.cmake
new file mode 100644
index 0000000000..b7f7f4455a
--- /dev/null
+++ b/archived/projt-launcher/cmake/useMinimalLibs.cmake
@@ -0,0 +1,60 @@
+function(projt_add_internallibs)
+ option(NBT_BUILD_SHARED "Build NBT shared library" OFF)
+ option(NBT_USE_ZLIB "Build NBT library with zlib support" ON)
+ option(NBT_BUILD_TESTS "Build NBT library tests" OFF)
+ projt_push_output_dirs("libnbtplusplus")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libnbtplusplus libnbtplusplus)
+ projt_pop_output_dirs()
+
+ if(NOT LAUNCHER_FUZZ_ONLY)
+ projt_push_output_dirs("systeminfo")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../systeminfo systeminfo) # system information library
+ projt_pop_output_dirs()
+ endif()
+ if(NOT LAUNCHER_FUZZ_ONLY)
+ projt_push_output_dirs("launcherjava")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../javaloader javaloader) # java based launcher part for Minecraft
+ projt_pop_output_dirs()
+ projt_push_output_dirs("javacheck")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../javacheck javacheck) # java compatibility checker
+ projt_pop_output_dirs()
+ projt_push_output_dirs("rainbow")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../rainbow rainbow) # Qt extension for colors
+ projt_pop_output_dirs()
+ projt_push_output_dirs("LocalPeer")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../LocalPeer LocalPeer) # fork of a library from Qt solutions
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBEXECDIR AND NOT Launcher_BUNDLED_LIBEXECDIR STREQUAL "")
+ projt_push_install_libexecdir("${Launcher_BUNDLED_LIBEXECDIR}")
+ endif()
+ endif()
+ set(GAMEMODE_WITH_PRIVILEGED_GROUP "ptgamemode" CACHE STRING "" FORCE)
+ projt_push_output_dirs("gamemode")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../gamemode gamemode)
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBEXECDIR AND NOT Launcher_BUNDLED_LIBEXECDIR STREQUAL "")
+ projt_pop_install_libexecdir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+ projt_push_output_dirs("murmur2")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../murmur2 murmur2) # Hash for usage with the CurseForge API
+ projt_pop_output_dirs()
+ projt_push_output_dirs("qdcss")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../qdcss qdcss) # css parser
+ projt_pop_output_dirs()
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/useMinizip.cmake b/archived/projt-launcher/cmake/useMinizip.cmake
new file mode 100644
index 0000000000..6091a9429e
--- /dev/null
+++ b/archived/projt-launcher/cmake/useMinizip.cmake
@@ -0,0 +1,26 @@
+function(projt_add_minizip)
+ set(MINIZIP_BUILD_SHARED ON CACHE BOOL "" FORCE)
+ set(MINIZIP_BUILD_STATIC OFF CACHE BOOL "" FORCE)
+ set(MINIZIP_BUILD_TESTING OFF CACHE BOOL "" FORCE)
+ set(MINIZIP_INSTALL ON CACHE BOOL "" FORCE)
+ set(MINIZIP_ENABLE_BZIP2 ON CACHE BOOL "" FORCE)
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("minizip")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ptlibzippy/contrib/minizip minizip)
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/usePTlibzippy.cmake b/archived/projt-launcher/cmake/usePTlibzippy.cmake
new file mode 100644
index 0000000000..766baf615a
--- /dev/null
+++ b/archived/projt-launcher/cmake/usePTlibzippy.cmake
@@ -0,0 +1,96 @@
+function(projt_add_ptlibzippy)
+ set(_projt_prev_skip_install_all "${SKIP_INSTALL_ALL}")
+ set(SKIP_INSTALL_ALL ON CACHE BOOL "" FORCE)
+
+ # Fuzzing
+ if(BUILD_FUZZERS)
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
+ set(PTLIBZIPPY_BUILD_SHARED OFF CACHE BOOL "" FORCE)
+ set(PTLIBZIPPY_BUILD_STATIC ON CACHE BOOL "" FORCE)
+ message(STATUS "Fuzzing build: Building ptlibzippy as static library only")
+ endif()
+
+ # Save flags
+ set(_SAVED_CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ set(_SAVED_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ set(_SAVED_CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+ set(_SAVED_CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+
+ # Strip coverage
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+
+ # Shared/static logic
+ if(UNIX AND NOT APPLE AND NOT BUILD_FUZZERS)
+ set(PTLIBZIPPY_BUILD_SHARED ON CACHE BOOL "" FORCE)
+ set(PTLIBZIPPY_BUILD_STATIC ON CACHE BOOL "" FORCE)
+ endif()
+
+ set(PTLIBZIPPY_PREFIX OFF CACHE BOOL "" FORCE)
+
+ # OSS-Fuzz sanitizer strip
+ if(DEFINED ENV{LIB_FUZZING_ENGINE})
+ string(REGEX REPLACE "-fsanitize=[^ ]*" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE "-fsanitize-coverage=[^ ]*" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE "-fno-sanitize-recover=[^ ]*" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ message(STATUS "OSS-Fuzz build: Stripping sanitizer flags from zlib")
+ endif()
+
+ # Install dirs
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+
+ projt_push_output_dirs("zlib")
+ projt_push_autogen_disabled()
+
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ptlibzippy ptlibzippy)
+
+ projt_pop_autogen_disabled()
+ projt_pop_output_dirs()
+
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+
+ # Restore flags
+ set(CMAKE_C_FLAGS "${_SAVED_CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${_SAVED_CMAKE_CXX_FLAGS}")
+ set(CMAKE_C_FLAGS_DEBUG "${_SAVED_CMAKE_C_FLAGS_DEBUG}")
+ set(CMAKE_C_FLAGS_RELEASE "${_SAVED_CMAKE_C_FLAGS_RELEASE}")
+
+ # PIC fix
+ if(TARGET ptlibzippystatic)
+ set_target_properties(ptlibzippystatic PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ endif()
+ if(TARGET ptlibzippy)
+ set_target_properties(ptlibzippy PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ endif()
+
+ # Export variables
+ if(TARGET PTlibzippy::PTlibzippy)
+ get_target_property(_projt_ptlibzippy_includes PTlibzippy::PTlibzippy INTERFACE_INCLUDE_DIRECTORIES)
+ endif()
+
+ if(_projt_ptlibzippy_includes)
+ set(PTLIBZIPPY_INCLUDE_DIR "${_projt_ptlibzippy_includes}" PARENT_SCOPE)
+ elseif(DEFINED PTlibzippy_SOURCE_DIR AND DEFINED PTlibzippy_BINARY_DIR)
+ set(PTLIBZIPPY_INCLUDE_DIR "${PTlibzippy_SOURCE_DIR};${PTlibzippy_BINARY_DIR}" PARENT_SCOPE)
+ endif()
+
+ set(PTLIBZIPPY_LIBRARIES "PTlibzippy::PTlibzippy" PARENT_SCOPE)
+
+ unset(_projt_ptlibzippy_includes)
+
+ set(SKIP_INSTALL_ALL "${_projt_prev_skip_install_all}" CACHE BOOL "" FORCE)
+endfunction()
diff --git a/archived/projt-launcher/cmake/useQuazip.cmake b/archived/projt-launcher/cmake/useQuazip.cmake
new file mode 100644
index 0000000000..d80374304a
--- /dev/null
+++ b/archived/projt-launcher/cmake/useQuazip.cmake
@@ -0,0 +1,31 @@
+function(projt_add_quazip)
+ set(QUAZIP_ENABLE_TESTS OFF CACHE BOOL "" FORCE)
+ set(QUAZIP_ENABLE_QTEXTCODEC OFF CACHE BOOL "" FORCE)
+ set(QUAZIP_INSTALL ON CACHE BOOL "" FORCE)
+ set(QUAZIP_INSTALL_CMAKE_CONFIG OFF CACHE BOOL "" FORCE)
+ set(QUAZIP_BZIP2 ON CACHE BOOL "" FORCE)
+ set(QUAZIP_FETCH_LIBS OFF CACHE BOOL "" FORCE)
+ set(QUAZIP_FORCE_FETCH_LIBS OFF CACHE BOOL "" FORCE)
+ # Disable instrumentation for external dependencies to avoid linker issues
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE "-fprofile-instr-generate|--coverage|-fprofile-generate|-fprofile-arcs|-ftest-coverage" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("quazip")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../quazip quazip)
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+endfunction()
diff --git a/archived/projt-launcher/cmake/useTomlplusplus.cmake b/archived/projt-launcher/cmake/useTomlplusplus.cmake
new file mode 100644
index 0000000000..6d684a032f
--- /dev/null
+++ b/archived/projt-launcher/cmake/useTomlplusplus.cmake
@@ -0,0 +1,21 @@
+function(projt_add_tomlplusplus)
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_push_install_libdir("${Launcher_BUNDLED_LIBDIR}")
+ endif()
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_push_install_includedir("${Launcher_BUNDLED_INCLUDEDIR}")
+ endif()
+ endif()
+ projt_push_output_dirs("tomlplusplus")
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../tomlplusplus tomlplusplus)
+ projt_pop_output_dirs()
+ if(UNIX AND NOT APPLE)
+ if(DEFINED Launcher_BUNDLED_INCLUDEDIR AND NOT Launcher_BUNDLED_INCLUDEDIR STREQUAL "")
+ projt_pop_install_includedir()
+ endif()
+ if(DEFINED Launcher_BUNDLED_LIBDIR AND NOT Launcher_BUNDLED_LIBDIR STREQUAL "")
+ projt_pop_install_libdir()
+ endif()
+ endif()
+endfunction() \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/README.md b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/README.md
new file mode 100644
index 0000000000..12dc29efc0
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/README.md
@@ -0,0 +1,3 @@
+The only difference between this and the upstream vcpkg port is the addition of `universal-osx.patch`. It's very annoying we need to bundle this entire tree to do that.
+
+-@YongDo-Hyun
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-args.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-args.patch
new file mode 100644
index 0000000000..ad800aa66e
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-args.patch
@@ -0,0 +1,13 @@
+diff --git a/mesonbuild/cmake/toolchain.py b/mesonbuild/cmake/toolchain.py
+index 11a00be5d..89ae490ff 100644
+--- a/mesonbuild/cmake/toolchain.py
++++ b/mesonbuild/cmake/toolchain.py
+@@ -202,7 +202,7 @@ class CMakeToolchain:
+ @staticmethod
+ def is_cmdline_option(compiler: 'Compiler', arg: str) -> bool:
+ if compiler.get_argument_syntax() == 'msvc':
+- return arg.startswith('/')
++ return arg.startswith(('/','-'))
+ else:
+ if os.path.basename(compiler.get_exe()) == 'zig' and arg in {'ar', 'cc', 'c++', 'dlltool', 'lib', 'ranlib', 'objcopy', 'rc'}:
+ return True
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-python-dep.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-python-dep.patch
new file mode 100644
index 0000000000..0cbfe717de
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/adjust-python-dep.patch
@@ -0,0 +1,45 @@
+diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py
+index 883a29a..d9a82af 100644
+--- a/mesonbuild/dependencies/python.py
++++ b/mesonbuild/dependencies/python.py
+@@ -232,8 +232,10 @@ class _PythonDependencyBase(_Base):
+ else:
+ if self.is_freethreaded:
+ libpath = Path('libs') / f'python{vernum}t.lib'
++ libpath = Path('libs') / f'..' / f'..' / f'..' / f'lib' / f'python{vernum}t.lib'
+ else:
+ libpath = Path('libs') / f'python{vernum}.lib'
++ libpath = Path('libs') / f'..' / f'..' / f'..' / f'lib' / f'python{vernum}.lib'
+ # For a debug build, pyconfig.h may force linking with
+ # pythonX_d.lib (see meson#10776). This cannot be avoided
+ # and won't work unless we also have a debug build of
+@@ -250,6 +252,8 @@ class _PythonDependencyBase(_Base):
+ vscrt = self.env.coredata.optstore.get_value('b_vscrt')
+ if vscrt in {'mdd', 'mtd', 'from_buildtype', 'static_from_buildtype'}:
+ vscrt_debug = True
++ if is_debug_build:
++ libpath = Path('libs') / f'..' / f'..' / f'..' / f'debug/lib' / f'python{vernum}_d.lib'
+ if is_debug_build and vscrt_debug and not self.variables.get('Py_DEBUG'):
+ mlog.warning(textwrap.dedent('''\
+ Using a debug build type with MSVC or an MSVC-compatible compiler
+@@ -350,9 +354,10 @@ class PythonSystemDependency(SystemDependency, _PythonDependencyBase):
+ self.is_found = True
+
+ # compile args
++ verdot = self.variables.get('py_version_short')
+ inc_paths = mesonlib.OrderedSet([
+ self.variables.get('INCLUDEPY'),
+- self.paths.get('include'),
++ self.paths.get('include') + f'/../../../include/python${verdot}',
+ self.paths.get('platinclude')])
+
+ self.compile_args += ['-I' + path for path in inc_paths if path]
+@@ -416,7 +421,7 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
+ candidates.append(functools.partial(wrap_in_pythons_pc_dir, pkg_name, env, kwargs, installation))
+ # We only need to check both, if a python install has a LIBPC. It might point to the wrong location,
+ # e.g. relocated / cross compilation, but the presence of LIBPC indicates we should definitely look for something.
+- if pkg_libdir is not None:
++ if True or pkg_libdir is not None:
+ candidates.append(functools.partial(PythonPkgConfigDependency, pkg_name, env, kwargs, installation))
+ else:
+ candidates.append(functools.partial(PkgConfigDependency, 'python3', env, kwargs))
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/fix-libcpp-enable-assertions.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/fix-libcpp-enable-assertions.patch
new file mode 100644
index 0000000000..394b064dc4
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/fix-libcpp-enable-assertions.patch
@@ -0,0 +1,52 @@
+From a16ec8b0fb6d7035b669a13edd4d97ff0c307a0b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20D=C3=B8rum?= <martid0311@gmail.com>
+Date: Fri, 2 May 2025 10:56:28 +0200
+Subject: [PATCH] cpp: fix _LIBCPP_ENABLE_ASSERTIONS warning
+
+libc++ deprecated _LIBCPP_ENABLE_ASSERTIONS from version 18.
+However, the libc++ shipped with Apple Clang backported that
+deprecation in version 17 already,
+which is the version which Apple currently ships for macOS.
+This PR changes the _LIBCPP_ENABLE_ASSERTIONS deprecation check
+to use version ">=17" on Apple Clang.
+---
+ mesonbuild/compilers/cpp.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
+index 01b9bb9fa34f..f7dc150e8608 100644
+--- a/mesonbuild/compilers/cpp.py
++++ b/mesonbuild/compilers/cpp.py
+@@ -311,6 +311,9 @@ def get_option_link_args(self, target: 'BuildTarget', env: 'Environment', subpro
+ return libs
+ return []
+
++ def is_libcpp_enable_assertions_deprecated(self) -> bool:
++ return version_compare(self.version, ">=18")
++
+ def get_assert_args(self, disable: bool, env: 'Environment') -> T.List[str]:
+ if disable:
+ return ['-DNDEBUG']
+@@ -323,7 +326,7 @@ def get_assert_args(self, disable: bool, env: 'Environment') -> T.List[str]:
+ if self.language_stdlib_provider(env) == 'stdc++':
+ return ['-D_GLIBCXX_ASSERTIONS=1']
+ else:
+- if version_compare(self.version, '>=18'):
++ if self.is_libcpp_enable_assertions_deprecated():
+ return ['-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST']
+ elif version_compare(self.version, '>=15'):
+ return ['-D_LIBCPP_ENABLE_ASSERTIONS=1']
+@@ -343,7 +346,12 @@ class ArmLtdClangCPPCompiler(ClangCPPCompiler):
+
+
+ class AppleClangCPPCompiler(AppleCompilerMixin, AppleCPPStdsMixin, ClangCPPCompiler):
+- pass
++ def is_libcpp_enable_assertions_deprecated(self) -> bool:
++ # Upstream libc++ deprecated _LIBCPP_ENABLE_ASSERTIONS
++ # in favor of _LIBCPP_HARDENING_MODE from version 18 onwards,
++ # but Apple Clang 17's libc++ has back-ported that change.
++ # See: https://github.com/mesonbuild/meson/issues/14440
++ return version_compare(self.version, ">=17")
+
+
+ class EmscriptenCPPCompiler(EmscriptenMixin, ClangCPPCompiler):
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/install.cmake b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/install.cmake
new file mode 100644
index 0000000000..84201aa1aa
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/install.cmake
@@ -0,0 +1,5 @@
+file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/meson")
+file(INSTALL "${SOURCE_PATH}/meson.py"
+ "${SOURCE_PATH}/mesonbuild"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/tools/meson"
+)
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson-intl.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson-intl.patch
new file mode 100644
index 0000000000..8f2a029de5
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson-intl.patch
@@ -0,0 +1,13 @@
+diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
+--- a/mesonbuild/dependencies/misc.py
++++ b/mesonbuild/dependencies/misc.py
+@@ -593,7 +593,8 @@ iconv_factory = DependencyFactory(
+
+ packages['intl'] = intl_factory = DependencyFactory(
+ 'intl',
++ [DependencyMethods.BUILTIN, DependencyMethods.SYSTEM, DependencyMethods.CMAKE],
++ cmake_name='Intl',
+- [DependencyMethods.BUILTIN, DependencyMethods.SYSTEM],
+ builtin_class=IntlBuiltinDependency,
+ system_class=IntlSystemDependency,
+ )
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson.template.in b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson.template.in
new file mode 100644
index 0000000000..df21b753b0
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/meson.template.in
@@ -0,0 +1,43 @@
+[binaries]
+cmake = ['@CMAKE_COMMAND@']
+ninja = ['@NINJA@']
+pkg-config = ['@PKGCONFIG@']
+@MESON_MT@
+@MESON_AR@
+@MESON_RC@
+@MESON_C@
+@MESON_C_LD@
+@MESON_CXX@
+@MESON_CXX_LD@
+@MESON_OBJC@
+@MESON_OBJC_LD@
+@MESON_OBJCPP@
+@MESON_OBJCPP_LD@
+@MESON_FC@
+@MESON_FC_LD@
+@MESON_WINDRES@
+@MESON_ADDITIONAL_BINARIES@
+[properties]
+cmake_toolchain_file = '@SCRIPTS@/buildsystems/vcpkg.cmake'
+@MESON_ADDITIONAL_PROPERTIES@
+[cmake]
+CMAKE_BUILD_TYPE = '@MESON_CMAKE_BUILD_TYPE@'
+VCPKG_TARGET_TRIPLET = '@TARGET_TRIPLET@'
+VCPKG_HOST_TRIPLET = '@_HOST_TRIPLET@'
+VCPKG_CHAINLOAD_TOOLCHAIN_FILE = '@VCPKG_CHAINLOAD_TOOLCHAIN_FILE@'
+VCPKG_CRT_LINKAGE = '@VCPKG_CRT_LINKAGE@'
+_VCPKG_INSTALLED_DIR = '@_VCPKG_INSTALLED_DIR@'
+@MESON_HOST_MACHINE@
+@MESON_BUILD_MACHINE@
+[built-in options]
+default_library = '@MESON_DEFAULT_LIBRARY@'
+werror = false
+@MESON_CFLAGS@
+@MESON_CXXFLAGS@
+@MESON_FCFLAGS@
+@MESON_OBJCFLAGS@
+@MESON_OBJCPPFLAGS@
+# b_vscrt
+@MESON_VSCRT_LINKAGE@
+# c_winlibs/cpp_winlibs
+@MESON_WINLIBS@ \ No newline at end of file
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/portfile.cmake b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/portfile.cmake
new file mode 100644
index 0000000000..9d09373ebd
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/portfile.cmake
@@ -0,0 +1,45 @@
+# This port represents a dependency on the Meson build system.
+# In the future, it is expected that this port acquires and installs Meson.
+# Currently is used in ports that call vcpkg_find_acquire_program(MESON) in order to force rebuilds.
+
+set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled)
+
+set(patches
+ meson-intl.patch
+ adjust-python-dep.patch
+ adjust-args.patch
+ remove-freebsd-pcfile-specialization.patch
+ fix-libcpp-enable-assertions.patch # https://github.com/mesonbuild/meson/pull/14548, Remove in 1.8.3
+ universal-osx.patch # NOTE(@YongDo-Hyun): THIS IS THE ONLY CHANGE NEEDED FOR PROJT
+)
+set(scripts
+ vcpkg-port-config.cmake
+ vcpkg_configure_meson.cmake
+ vcpkg_install_meson.cmake
+ meson.template.in
+)
+set(to_hash
+ "${CMAKE_CURRENT_LIST_DIR}/vcpkg.json"
+ "${CMAKE_CURRENT_LIST_DIR}/portfile.cmake"
+)
+foreach(file IN LISTS patches scripts)
+ set(filepath "${CMAKE_CURRENT_LIST_DIR}/${file}")
+ list(APPEND to_hash "${filepath}")
+ file(COPY "${filepath}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+endforeach()
+
+set(meson_path_hash "")
+foreach(filepath IN LISTS to_hash)
+ file(SHA1 "${filepath}" to_append)
+ string(APPEND meson_path_hash "${to_append}")
+endforeach()
+string(SHA512 meson_path_hash "${meson_path_hash}")
+
+string(SUBSTRING "${meson_path_hash}" 0 6 MESON_SHORT_HASH)
+list(TRANSFORM patches REPLACE [[^(..*)$]] [["${CMAKE_CURRENT_LIST_DIR}/\0"]])
+list(JOIN patches "\n " PATCHES)
+configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY)
+
+vcpkg_install_copyright(FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt")
+
+include("${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake")
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/remove-freebsd-pcfile-specialization.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/remove-freebsd-pcfile-specialization.patch
new file mode 100644
index 0000000000..947345ccf8
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/remove-freebsd-pcfile-specialization.patch
@@ -0,0 +1,23 @@
+diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
+index cc0450a52..13501466d 100644
+--- a/mesonbuild/modules/pkgconfig.py
++++ b/mesonbuild/modules/pkgconfig.py
+@@ -701,16 +701,8 @@ class PkgConfigModule(NewExtensionModule):
+ pcfile = filebase + '.pc'
+ pkgroot = pkgroot_name = kwargs['install_dir'] or default_install_dir
+ if pkgroot is None:
+- m = state.environment.machines.host
+- if m.is_freebsd():
+- pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('prefix'))), 'libdata', 'pkgconfig')
+- pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig')
+- elif m.is_haiku():
+- pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
+- pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig')
+- else:
+- pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('libdir'))), 'pkgconfig')
+- pkgroot_name = os.path.join('{libdir}', 'pkgconfig')
++ pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('libdir'))), 'pkgconfig')
++ pkgroot_name = os.path.join('{libdir}', 'pkgconfig')
+ relocatable = state.get_option('pkgconfig.relocatable')
+ self._generate_pkgconfig_file(state, deps, subdirs, name, description, url,
+ version, pcfile, conflicts, variables,
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/universal-osx.patch b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/universal-osx.patch
new file mode 100644
index 0000000000..58b96d5ce4
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/universal-osx.patch
@@ -0,0 +1,16 @@
+diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py
+index f57957f0b..a72e72a0b 100644
+--- a/mesonbuild/compilers/detect.py
++++ b/mesonbuild/compilers/detect.py
+@@ -1472,6 +1472,11 @@ def _get_clang_compiler_defines(compiler: T.List[str], lang: str) -> T.Dict[str,
+ """
+ from .mixins.clang import clang_lang_map
+
++ # Filter out `-arch` flags passed to the compiler for Universal Binaries
++ # https://github.com/mesonbuild/meson/issues/5290
++ # https://github.com/mesonbuild/meson/issues/8206
++ compiler = [arg for i, arg in enumerate(compiler) if not (i > 0 and compiler[i - 1] == "-arch") and not arg == "-arch"]
++
+ def _try_obtain_compiler_defines(args: T.List[str]) -> str:
+ mlog.debug(f'Running command: {join_args(args)}')
+ p, output, error = Popen_safe(compiler + args, write='', stdin=subprocess.PIPE)
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg-port-config.cmake b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg-port-config.cmake
new file mode 100644
index 0000000000..c0dee3a382
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg-port-config.cmake
@@ -0,0 +1,62 @@
+include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake-get-vars/vcpkg-port-config.cmake")
+# Overwrite builtin scripts
+include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_configure_meson.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_install_meson.cmake")
+
+set(meson_short_hash @MESON_SHORT_HASH@)
+
+# Setup meson:
+set(program MESON)
+set(program_version @VERSION@)
+set(program_name meson)
+set(search_names meson meson.py)
+set(ref "${program_version}")
+set(path_to_search "${DOWNLOADS}/tools/meson-${program_version}-${meson_short_hash}")
+set(download_urls "https://github.com/mesonbuild/meson/archive/${ref}.tar.gz")
+set(download_filename "meson-${ref}.tar.gz")
+set(download_sha512 bd2e65f0863d9cb974e659ff502d773e937b8a60aaddfd7d81e34cd2c296c8e82bf214d790ac089ba441543059dfc2677ba95ed51f676df9da420859f404a907)
+
+find_program(SCRIPT_MESON NAMES ${search_names} PATHS "${path_to_search}" NO_DEFAULT_PATH) # NO_DEFAULT_PATH due top patching
+
+if(NOT SCRIPT_MESON)
+ vcpkg_download_distfile(archive_path
+ URLS ${download_urls}
+ SHA512 "${download_sha512}"
+ FILENAME "${download_filename}"
+ )
+ file(REMOVE_RECURSE "${path_to_search}")
+ file(REMOVE_RECURSE "${path_to_search}-tmp")
+ file(MAKE_DIRECTORY "${path_to_search}-tmp")
+ file(ARCHIVE_EXTRACT INPUT "${archive_path}"
+ DESTINATION "${path_to_search}-tmp"
+ #PATTERNS "**/mesonbuild/*" "**/*.py"
+ )
+ z_vcpkg_apply_patches(
+ SOURCE_PATH "${path_to_search}-tmp/meson-${ref}"
+ PATCHES
+ @PATCHES@
+ )
+ file(MAKE_DIRECTORY "${path_to_search}")
+ file(RENAME "${path_to_search}-tmp/meson-${ref}/meson.py" "${path_to_search}/meson.py")
+ file(RENAME "${path_to_search}-tmp/meson-${ref}/mesonbuild" "${path_to_search}/mesonbuild")
+ file(REMOVE_RECURSE "${path_to_search}-tmp")
+ set(SCRIPT_MESON "${path_to_search}/meson.py")
+endif()
+
+# Check required python version
+vcpkg_find_acquire_program(PYTHON3)
+vcpkg_execute_in_download_mode(
+ COMMAND "${PYTHON3}" --version
+ OUTPUT_VARIABLE version_contents
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}"
+)
+string(REGEX MATCH [[[0-9]+\.[0-9]+\.[0-9]+]] python_ver "${version_contents}")
+
+set(min_required 3.7)
+if(python_ver VERSION_LESS "${min_required}")
+ message(FATAL_ERROR "Found Python version '${python_ver} at ${PYTHON3}' is insufficient for meson. meson requires at least version '${min_required}'")
+else()
+ message(STATUS "Found Python version '${python_ver} at ${PYTHON3}'")
+endif()
+
+message(STATUS "Using meson: ${SCRIPT_MESON}")
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg.json b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg.json
new file mode 100644
index 0000000000..04a0cbbec8
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg.json
@@ -0,0 +1,11 @@
+{
+ "name": "vcpkg-tool-meson",
+ "version": "1.8.2",
+ "description": "Meson build system",
+ "homepage": "https://github.com/mesonbuild/meson",
+ "license": "Apache-2.0",
+ "supports": "native",
+ "dependencies": [
+ "vcpkg-cmake-get-vars"
+ ]
+}
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake
new file mode 100644
index 0000000000..6b00200d18
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake
@@ -0,0 +1,480 @@
+function(z_vcpkg_meson_set_proglist_variables config_type)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ set(proglist MT AR)
+ else()
+ set(proglist AR RANLIB STRIP NM OBJDUMP DLLTOOL MT)
+ endif()
+ foreach(prog IN LISTS proglist)
+ if(VCPKG_DETECTED_CMAKE_${prog})
+ if(meson_${prog})
+ string(TOUPPER "MESON_${meson_${prog}}" var_to_set)
+ set("${var_to_set}" "${meson_${prog}} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE)
+ elseif(${prog} STREQUAL AR AND VCPKG_COMBINED_STATIC_LINKER_FLAGS_${config_type})
+ # Probably need to move AR somewhere else
+ string(TOLOWER "${prog}" proglower)
+ z_vcpkg_meson_convert_compiler_flags_to_list(ar_flags "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${config_type}}")
+ list(PREPEND ar_flags "${VCPKG_DETECTED_CMAKE_${prog}}")
+ z_vcpkg_meson_convert_list_to_python_array(ar_flags ${ar_flags})
+ set("MESON_AR" "${proglower} = ${ar_flags}" PARENT_SCOPE)
+ else()
+ string(TOUPPER "MESON_${prog}" var_to_set)
+ string(TOLOWER "${prog}" proglower)
+ set("${var_to_set}" "${proglower} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE)
+ endif()
+ endif()
+ endforeach()
+ set(compilers "${arg_LANGUAGES}")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ list(APPEND compilers RC)
+ endif()
+ set(meson_RC windres)
+ set(meson_Fortran fortran)
+ set(meson_CXX cpp)
+ foreach(prog IN LISTS compilers)
+ if(VCPKG_DETECTED_CMAKE_${prog}_COMPILER)
+ string(TOUPPER "MESON_${prog}" var_to_set)
+ if(meson_${prog})
+ if(VCPKG_COMBINED_${prog}_FLAGS_${config_type})
+ # Need compiler flags in prog vars for sanity check.
+ z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_COMBINED_${prog}_FLAGS_${config_type}}")
+ endif()
+ list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}")
+ list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise
+ z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags})
+ set("${var_to_set}" "${meson_${prog}} = ${${prog}flags}" PARENT_SCOPE)
+ if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID
+ AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$"
+ AND VCPKG_DETECTED_CMAKE_LINKER)
+ string(TOUPPER "MESON_${prog}_LD" var_to_set)
+ set(${var_to_set} "${meson_${prog}}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE)
+ endif()
+ else()
+ if(VCPKG_COMBINED_${prog}_FLAGS_${config_type})
+ # Need compiler flags in prog vars for sanity check.
+ z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_COMBINED_${prog}_FLAGS_${config_type}}")
+ endif()
+ list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}")
+ list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise
+ z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags})
+ string(TOLOWER "${prog}" proglower)
+ set("${var_to_set}" "${proglower} = ${${prog}flags}" PARENT_SCOPE)
+ if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID
+ AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$"
+ AND VCPKG_DETECTED_CMAKE_LINKER)
+ string(TOUPPER "MESON_${prog}_LD" var_to_set)
+ set(${var_to_set} "${proglower}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+ endforeach()
+endfunction()
+
+function(z_vcpkg_meson_convert_compiler_flags_to_list out_var compiler_flags)
+ separate_arguments(cmake_list NATIVE_COMMAND "${compiler_flags}")
+ list(TRANSFORM cmake_list REPLACE ";" [[\\;]])
+ set("${out_var}" "${cmake_list}" PARENT_SCOPE)
+endfunction()
+
+function(z_vcpkg_meson_convert_list_to_python_array out_var)
+ z_vcpkg_function_arguments(flag_list 1)
+ vcpkg_list(REMOVE_ITEM flag_list "") # remove empty elements if any
+ vcpkg_list(JOIN flag_list "', '" flag_list)
+ set("${out_var}" "['${flag_list}']" PARENT_SCOPE)
+endfunction()
+
+# Generates the required compiler properties for meson
+function(z_vcpkg_meson_set_flags_variables config_type)
+ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ set(libpath_flag /LIBPATH:)
+ else()
+ set(libpath_flag -L)
+ endif()
+ if(config_type STREQUAL "DEBUG")
+ set(path_suffix "/debug")
+ else()
+ set(path_suffix "")
+ endif()
+
+ set(includepath "-I${CURRENT_INSTALLED_DIR}/include")
+ set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib")
+
+ foreach(lang IN LISTS arg_LANGUAGES)
+ z_vcpkg_meson_convert_compiler_flags_to_list(${lang}flags "${VCPKG_COMBINED_${lang}_FLAGS_${config_type}}")
+ if(lang MATCHES "^(C|CXX)$")
+ vcpkg_list(APPEND ${lang}flags "${includepath}")
+ endif()
+ z_vcpkg_meson_convert_list_to_python_array(${lang}flags ${${lang}flags})
+ set(lang_mapping "${lang}")
+ if(lang STREQUAL "Fortran")
+ set(lang_mapping "FC")
+ endif()
+ string(TOLOWER "${lang_mapping}" langlower)
+ if(lang STREQUAL "CXX")
+ set(langlower cpp)
+ endif()
+ set(MESON_${lang_mapping}FLAGS "${langlower}_args = ${${lang}flags}\n")
+ set(linker_flags "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${config_type}}")
+ z_vcpkg_meson_convert_compiler_flags_to_list(linker_flags "${linker_flags}")
+ vcpkg_list(APPEND linker_flags "${libpath}")
+ z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags})
+ string(APPEND MESON_${lang_mapping}FLAGS "${langlower}_link_args = ${linker_flags}\n")
+ set(MESON_${lang_mapping}FLAGS "${MESON_${lang_mapping}FLAGS}" PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+function(z_vcpkg_get_build_and_host_system build_system host_system is_cross) #https://mesonbuild.com/Cross-compilation.html
+ set(build_unknown FALSE)
+ if(CMAKE_HOST_WIN32)
+ if(DEFINED ENV{PROCESSOR_ARCHITEW6432})
+ set(build_arch $ENV{PROCESSOR_ARCHITEW6432})
+ else()
+ set(build_arch $ENV{PROCESSOR_ARCHITECTURE})
+ endif()
+ if(build_arch MATCHES "(amd|AMD)64")
+ set(build_cpu_fam x86_64)
+ set(build_cpu x86_64)
+ elseif(build_arch MATCHES "(x|X)86")
+ set(build_cpu_fam x86)
+ set(build_cpu i686)
+ elseif(build_arch MATCHES "^(ARM|arm)64$")
+ set(build_cpu_fam aarch64)
+ set(build_cpu armv8)
+ elseif(build_arch MATCHES "^(ARM|arm)$")
+ set(build_cpu_fam arm)
+ set(build_cpu armv7hl)
+ else()
+ if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE)
+ message(WARNING "Unsupported build architecture ${build_arch}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!")
+ endif()
+ set(build_unknown TRUE)
+ endif()
+ elseif(CMAKE_HOST_UNIX)
+ # at this stage, CMAKE_HOST_SYSTEM_PROCESSOR is not defined
+ execute_process(
+ COMMAND uname -m
+ OUTPUT_VARIABLE MACHINE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ COMMAND_ERROR_IS_FATAL ANY)
+
+ # Show real machine architecture to visually understand whether we are in a native Apple Silicon terminal or running under Rosetta emulation
+ debug_message("Machine: ${MACHINE}")
+
+ if(MACHINE MATCHES "arm64|aarch64")
+ set(build_cpu_fam aarch64)
+ set(build_cpu armv8)
+ elseif(MACHINE MATCHES "armv7h?l")
+ set(build_cpu_fam arm)
+ set(build_cpu ${MACHINE})
+ elseif(MACHINE MATCHES "x86_64|amd64")
+ set(build_cpu_fam x86_64)
+ set(build_cpu x86_64)
+ elseif(MACHINE MATCHES "x86|i686")
+ set(build_cpu_fam x86)
+ set(build_cpu i686)
+ elseif(MACHINE MATCHES "i386")
+ set(build_cpu_fam x86)
+ set(build_cpu i386)
+ elseif(MACHINE MATCHES "loongarch64")
+ set(build_cpu_fam loongarch64)
+ set(build_cpu loongarch64)
+ else()
+ # https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-tables.md#cpu-families
+ if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE)
+ message(WARNING "Unhandled machine: ${MACHINE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!")
+ endif()
+ set(build_unknown TRUE)
+ endif()
+ else()
+ if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE)
+ message(WARNING "Failed to detect the build architecture! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!")
+ endif()
+ set(build_unknown TRUE)
+ endif()
+
+ set(build "[build_machine]\n") # Machine the build is performed on
+ string(APPEND build "endian = 'little'\n")
+ if(CMAKE_HOST_WIN32)
+ string(APPEND build "system = 'windows'\n")
+ elseif(CMAKE_HOST_APPLE)
+ string(APPEND build "system = 'darwin'\n")
+ elseif(CYGWIN)
+ string(APPEND build "system = 'cygwin'\n")
+ elseif(CMAKE_HOST_UNIX)
+ string(APPEND build "system = 'linux'\n")
+ else()
+ set(build_unknown TRUE)
+ endif()
+
+ if(DEFINED build_cpu_fam)
+ string(APPEND build "cpu_family = '${build_cpu_fam}'\n")
+ endif()
+ if(DEFINED build_cpu)
+ string(APPEND build "cpu = '${build_cpu}'")
+ endif()
+ if(NOT build_unknown)
+ set(${build_system} "${build}" PARENT_SCOPE)
+ endif()
+
+ set(host_unkown FALSE)
+ if(VCPKG_TARGET_ARCHITECTURE MATCHES "(amd|AMD|x|X)64")
+ set(host_cpu_fam x86_64)
+ set(host_cpu x86_64)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86")
+ set(host_cpu_fam x86)
+ set(host_cpu i686)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$")
+ set(host_cpu_fam aarch64)
+ set(host_cpu armv8)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)$")
+ set(host_cpu_fam arm)
+ set(host_cpu armv7hl)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "loongarch64")
+ set(host_cpu_fam loongarch64)
+ set(host_cpu loongarch64)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "wasm32")
+ set(host_cpu_fam wasm32)
+ set(host_cpu wasm32)
+ else()
+ if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE)
+ message(WARNING "Unsupported target architecture ${VCPKG_TARGET_ARCHITECTURE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the host_machine entry!" )
+ endif()
+ set(host_unkown TRUE)
+ endif()
+
+ set(host "[host_machine]\n") # host=target in vcpkg.
+ string(APPEND host "endian = 'little'\n")
+ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_TARGET_IS_MINGW OR VCPKG_TARGET_IS_UWP)
+ set(meson_system_name "windows")
+ else()
+ string(TOLOWER "${VCPKG_CMAKE_SYSTEM_NAME}" meson_system_name)
+ endif()
+ string(APPEND host "system = '${meson_system_name}'\n")
+ string(APPEND host "cpu_family = '${host_cpu_fam}'\n")
+ string(APPEND host "cpu = '${host_cpu}'")
+ if(NOT host_unkown)
+ set(${host_system} "${host}" PARENT_SCOPE)
+ endif()
+
+ if(NOT build_cpu_fam MATCHES "${host_cpu_fam}"
+ OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_UWP
+ OR (VCPKG_TARGET_IS_MINGW AND NOT CMAKE_HOST_WIN32))
+ set(${is_cross} TRUE PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(z_vcpkg_meson_setup_extra_windows_variables config_type)
+ ## b_vscrt
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(crt_type "mt")
+ else()
+ set(crt_type "md")
+ endif()
+ if(config_type STREQUAL "DEBUG")
+ set(crt_type "${crt_type}d")
+ endif()
+ set(MESON_VSCRT_LINKAGE "b_vscrt = '${crt_type}'" PARENT_SCOPE)
+ ## winlibs
+ separate_arguments(c_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}")
+ separate_arguments(cpp_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}")
+ z_vcpkg_meson_convert_list_to_python_array(c_winlibs ${c_winlibs})
+ z_vcpkg_meson_convert_list_to_python_array(cpp_winlibs ${cpp_winlibs})
+ set(MESON_WINLIBS "c_winlibs = ${c_winlibs}\n")
+ string(APPEND MESON_WINLIBS "cpp_winlibs = ${cpp_winlibs}")
+ set(MESON_WINLIBS "${MESON_WINLIBS}" PARENT_SCOPE)
+endfunction()
+
+function(z_vcpkg_meson_setup_variables config_type)
+ set(meson_var_list VSCRT_LINKAGE WINLIBS MT AR RC C C_LD CXX CXX_LD OBJC OBJC_LD OBJCXX OBJCXX_LD FC FC_LD WINDRES CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FCFLAGS SHARED_LINKER_FLAGS)
+ foreach(var IN LISTS meson_var_list)
+ set(MESON_${var} "")
+ endforeach()
+
+ if(VCPKG_TARGET_IS_WINDOWS)
+ z_vcpkg_meson_setup_extra_windows_variables("${config_type}")
+ endif()
+
+ z_vcpkg_meson_set_proglist_variables("${config_type}")
+ z_vcpkg_meson_set_flags_variables("${config_type}")
+
+ foreach(var IN LISTS meson_var_list)
+ set(MESON_${var} "${MESON_${var}}" PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+function(vcpkg_generate_meson_cmd_args)
+ cmake_parse_arguments(PARSE_ARGV 0 arg
+ ""
+ "OUTPUT;CONFIG"
+ "OPTIONS;LANGUAGES;ADDITIONAL_BINARIES;ADDITIONAL_PROPERTIES"
+ )
+
+ if(NOT arg_LANGUAGES)
+ set(arg_LANGUAGES C CXX)
+ endif()
+
+ vcpkg_list(JOIN arg_ADDITIONAL_BINARIES "\n" MESON_ADDITIONAL_BINARIES)
+ vcpkg_list(JOIN arg_ADDITIONAL_PROPERTIES "\n" MESON_ADDITIONAL_PROPERTIES)
+
+ set(buildtype "${arg_CONFIG}")
+
+ if(NOT VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
+ z_vcpkg_select_default_vcpkg_chainload_toolchain()
+ endif()
+ vcpkg_list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_LANGUAGES=${arg_LANGUAGES}")
+ vcpkg_cmake_get_vars(cmake_vars_file)
+ debug_message("Including cmake vars from: ${cmake_vars_file}")
+ include("${cmake_vars_file}")
+
+ vcpkg_list(APPEND arg_OPTIONS --backend ninja --wrap-mode nodownload -Doptimization=plain)
+
+ z_vcpkg_get_build_and_host_system(MESON_HOST_MACHINE MESON_BUILD_MACHINE IS_CROSS)
+
+ if(arg_CONFIG STREQUAL "DEBUG")
+ set(suffix "dbg")
+ else()
+ string(SUBSTRING "${arg_CONFIG}" 0 3 suffix)
+ string(TOLOWER "${suffix}" suffix)
+ endif()
+ set(meson_input_file_${buildtype} "${CURRENT_BUILDTREES_DIR}/meson-${TARGET_TRIPLET}-${suffix}.log")
+
+ if(IS_CROSS)
+ # VCPKG_CROSSCOMPILING is not used since it regresses a lot of ports in x64-windows-x triplets
+ # For consistency this should proably be changed in the future?
+ vcpkg_list(APPEND arg_OPTIONS --native "${SCRIPTS}/buildsystems/meson/none.txt")
+ vcpkg_list(APPEND arg_OPTIONS --cross "${meson_input_file_${buildtype}}")
+ else()
+ vcpkg_list(APPEND arg_OPTIONS --native "${meson_input_file_${buildtype}}")
+ endif()
+
+ # User provided cross/native files
+ if(VCPKG_MESON_NATIVE_FILE)
+ vcpkg_list(APPEND arg_OPTIONS --native "${VCPKG_MESON_NATIVE_FILE}")
+ endif()
+ if(VCPKG_MESON_NATIVE_FILE_${buildtype})
+ vcpkg_list(APPEND arg_OPTIONS --native "${VCPKG_MESON_NATIVE_FILE_${buildtype}}")
+ endif()
+ if(VCPKG_MESON_CROSS_FILE)
+ vcpkg_list(APPEND arg_OPTIONS --cross "${VCPKG_MESON_CROSS_FILE}")
+ endif()
+ if(VCPKG_MESON_CROSS_FILE_${buildtype})
+ vcpkg_list(APPEND arg_OPTIONS --cross "${VCPKG_MESON_CROSS_FILE_${buildtype}}")
+ endif()
+
+ vcpkg_list(APPEND arg_OPTIONS --libdir lib) # else meson install into an architecture describing folder
+ vcpkg_list(APPEND arg_OPTIONS --pkgconfig.relocatable)
+
+ if(arg_CONFIG STREQUAL "RELEASE")
+ vcpkg_list(APPEND arg_OPTIONS -Ddebug=false --prefix "${CURRENT_PACKAGES_DIR}")
+ vcpkg_list(APPEND arg_OPTIONS "--pkg-config-path;['${CURRENT_INSTALLED_DIR}/lib/pkgconfig','${CURRENT_INSTALLED_DIR}/share/pkgconfig']")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}/share']")
+ else()
+ vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug']")
+ endif()
+ elseif(arg_CONFIG STREQUAL "DEBUG")
+ vcpkg_list(APPEND arg_OPTIONS -Ddebug=true --prefix "${CURRENT_PACKAGES_DIR}/debug" --includedir ../include)
+ vcpkg_list(APPEND arg_OPTIONS "--pkg-config-path;['${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig','${CURRENT_INSTALLED_DIR}/share/pkgconfig']")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/share']")
+ else()
+ vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}']")
+ endif()
+ else()
+ message(FATAL_ERROR "Unknown configuration. Only DEBUG and RELEASE are valid values.")
+ endif()
+
+ # Allow overrides / additional configuration variables from triplets
+ if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS)
+ vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MESON_CONFIGURE_OPTIONS})
+ endif()
+ if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS_${buildtype})
+ vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MESON_CONFIGURE_OPTIONS_${buildtype}})
+ endif()
+
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(MESON_DEFAULT_LIBRARY shared)
+ else()
+ set(MESON_DEFAULT_LIBRARY static)
+ endif()
+ set(MESON_CMAKE_BUILD_TYPE "${cmake_build_type_${buildtype}}")
+ z_vcpkg_meson_setup_variables(${buildtype})
+ configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/meson.template.in" "${meson_input_file_${buildtype}}" @ONLY)
+ set("${arg_OUTPUT}" ${arg_OPTIONS} PARENT_SCOPE)
+endfunction()
+
+function(vcpkg_configure_meson)
+ # parse parameters such that semicolons in options arguments to COMMAND don't get erased
+ cmake_parse_arguments(PARSE_ARGV 0 arg
+ "NO_PKG_CONFIG"
+ "SOURCE_PATH"
+ "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;LANGUAGES;ADDITIONAL_BINARIES;ADDITIONAL_NATIVE_BINARIES;ADDITIONAL_CROSS_BINARIES;ADDITIONAL_PROPERTIES"
+ )
+
+ if(DEFINED arg_ADDITIONAL_NATIVE_BINARIES OR DEFINED arg_ADDITIONAL_CROSS_BINARIES)
+ message(WARNING "Options ADDITIONAL_(NATIVE|CROSS)_BINARIES have been deprecated. Only use ADDITIONAL_BINARIES!")
+ endif()
+ vcpkg_list(APPEND arg_ADDITIONAL_BINARIES ${arg_ADDITIONAL_NATIVE_BINARIES} ${arg_ADDITIONAL_CROSS_BINARIES})
+ vcpkg_list(REMOVE_DUPLICATES arg_ADDITIONAL_BINARIES)
+
+ file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+ file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+
+ vcpkg_find_acquire_program(MESON)
+
+ get_filename_component(CMAKE_PATH "${CMAKE_COMMAND}" DIRECTORY)
+ vcpkg_add_to_path("${CMAKE_PATH}") # Make CMake invokeable for Meson
+
+ vcpkg_find_acquire_program(NINJA)
+
+ if(NOT arg_NO_PKG_CONFIG)
+ vcpkg_find_acquire_program(PKGCONFIG)
+ set(ENV{PKG_CONFIG} "${PKGCONFIG}")
+ endif()
+
+ vcpkg_find_acquire_program(PYTHON3)
+ get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+ vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}")
+
+ set(buildtypes "")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ set(buildname "DEBUG")
+ set(cmake_build_type_${buildname} "Debug")
+ vcpkg_list(APPEND buildtypes "${buildname}")
+ set(path_suffix_${buildname} "debug/")
+ set(suffix_${buildname} "dbg")
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ set(buildname "RELEASE")
+ set(cmake_build_type_${buildname} "Release")
+ vcpkg_list(APPEND buildtypes "${buildname}")
+ set(path_suffix_${buildname} "")
+ set(suffix_${buildname} "rel")
+ endif()
+
+ # configure build
+ foreach(buildtype IN LISTS buildtypes)
+ message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}}")
+ file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}")
+
+ vcpkg_generate_meson_cmd_args(
+ OUTPUT cmd_args
+ CONFIG ${buildtype}
+ LANGUAGES ${arg_LANGUAGES}
+ OPTIONS ${arg_OPTIONS} ${arg_OPTIONS_${buildtype}}
+ ADDITIONAL_BINARIES ${arg_ADDITIONAL_BINARIES}
+ ADDITIONAL_PROPERTIES ${arg_ADDITIONAL_PROPERTIES}
+ )
+
+ vcpkg_execute_required_process(
+ COMMAND ${MESON} setup ${cmd_args} ${arg_SOURCE_PATH}
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}"
+ LOGNAME config-${TARGET_TRIPLET}-${suffix_${buildtype}}
+ SAVE_LOG_FILES
+ meson-logs/meson-log.txt
+ meson-info/intro-dependencies.json
+ meson-logs/install-log.txt
+ )
+
+ message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}} done")
+ endforeach()
+endfunction()
diff --git a/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_install_meson.cmake b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_install_meson.cmake
new file mode 100644
index 0000000000..0351f271a4
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-ports/vcpkg-tool-meson/vcpkg_install_meson.cmake
@@ -0,0 +1,71 @@
+function(vcpkg_install_meson)
+ cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH" "" "")
+
+ vcpkg_find_acquire_program(NINJA)
+ unset(ENV{DESTDIR}) # installation directory was already specified with '--prefix' option
+
+ if(VCPKG_TARGET_IS_OSX)
+ vcpkg_backup_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET)
+ set(ENV{SDKROOT} "${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}")
+ set(ENV{MACOSX_DEPLOYMENT_TARGET} "${VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET}")
+ endif()
+
+ foreach(buildtype IN ITEMS "debug" "release")
+ if(DEFINED VCPKG_BUILD_TYPE AND NOT VCPKG_BUILD_TYPE STREQUAL buildtype)
+ continue()
+ endif()
+
+ if(buildtype STREQUAL "debug")
+ set(short_buildtype "dbg")
+ else()
+ set(short_buildtype "rel")
+ endif()
+
+ message(STATUS "Package ${TARGET_TRIPLET}-${short_buildtype}")
+ if(arg_ADD_BIN_TO_PATH)
+ vcpkg_backup_env_variables(VARS PATH)
+ if(buildtype STREQUAL "debug")
+ vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin")
+ else()
+ vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin")
+ endif()
+ endif()
+ vcpkg_execute_required_process(
+ COMMAND "${NINJA}" install -v
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_buildtype}"
+ LOGNAME package-${TARGET_TRIPLET}-${short_buildtype}
+ )
+ if(arg_ADD_BIN_TO_PATH)
+ vcpkg_restore_env_variables(VARS PATH)
+ endif()
+ endforeach()
+
+ vcpkg_list(SET renamed_libs)
+ if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL static AND NOT VCPKG_TARGET_IS_MINGW)
+ # Meson names all static libraries lib<name>.a which basically breaks the world
+ file(GLOB_RECURSE gen_libraries "${CURRENT_PACKAGES_DIR}*/**/lib*.a")
+ foreach(gen_library IN LISTS gen_libraries)
+ get_filename_component(libdir "${gen_library}" DIRECTORY)
+ get_filename_component(libname "${gen_library}" NAME)
+ string(REGEX REPLACE ".a$" ".lib" fixed_librawname "${libname}")
+ string(REGEX REPLACE "^lib" "" fixed_librawname "${fixed_librawname}")
+ file(RENAME "${gen_library}" "${libdir}/${fixed_librawname}")
+ # For cmake fixes.
+ string(REGEX REPLACE ".a$" "" origin_librawname "${libname}")
+ string(REGEX REPLACE ".lib$" "" fixed_librawname "${fixed_librawname}")
+ vcpkg_list(APPEND renamed_libs ${fixed_librawname})
+ set(${librawname}_old ${origin_librawname})
+ set(${librawname}_new ${fixed_librawname})
+ endforeach()
+ file(GLOB_RECURSE cmake_files "${CURRENT_PACKAGES_DIR}*/*.cmake")
+ foreach(cmake_file IN LISTS cmake_files)
+ foreach(current_lib IN LISTS renamed_libs)
+ vcpkg_replace_string("${cmake_file}" "${${current_lib}_old}" "${${current_lib}_new}" IGNORE_UNCHANGED)
+ endforeach()
+ endforeach()
+ endif()
+
+ if(VCPKG_TARGET_IS_OSX)
+ vcpkg_restore_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET)
+ endif()
+endfunction()
diff --git a/archived/projt-launcher/cmake/vcpkg-triplets/universal-osx.cmake b/archived/projt-launcher/cmake/vcpkg-triplets/universal-osx.cmake
new file mode 100644
index 0000000000..1c91a5650e
--- /dev/null
+++ b/archived/projt-launcher/cmake/vcpkg-triplets/universal-osx.cmake
@@ -0,0 +1,8 @@
+# See https://github.com/microsoft/vcpkg/discussions/19454
+# NOTE: Try to keep in sync with default arm64-osx definition
+set(VCPKG_TARGET_ARCHITECTURE x64)
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
+set(VCPKG_OSX_ARCHITECTURES "arm64;x86_64")