aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/luau
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/luau
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/luau')
-rw-r--r--vcpkg/ports/luau/cmake-config-export.patch140
-rw-r--r--vcpkg/ports/luau/portfile.cmake40
-rw-r--r--vcpkg/ports/luau/vcpkg.json23
3 files changed, 203 insertions, 0 deletions
diff --git a/vcpkg/ports/luau/cmake-config-export.patch b/vcpkg/ports/luau/cmake-config-export.patch
new file mode 100644
index 0000000..d4afe3f
--- /dev/null
+++ b/vcpkg/ports/luau/cmake-config-export.patch
@@ -0,0 +1,140 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4fb21c3..5ce6814 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -66,41 +66,41 @@ add_library(Luau.VM.Internals INTERFACE)
+
+ include(Sources.cmake)
+
+-target_include_directories(Luau.Common INTERFACE Common/include)
++target_include_directories(Luau.Common INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Common/include> $<INSTALL_INTERFACE:include/luau>)
+
+ target_compile_features(Luau.CLI.lib PUBLIC cxx_std_17)
+-target_include_directories(Luau.CLI.lib PUBLIC CLI/include)
++target_include_directories(Luau.CLI.lib PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/CLI/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.CLI.lib PRIVATE Luau.Common Luau.Config)
+
+ target_compile_features(Luau.Ast PUBLIC cxx_std_17)
+-target_include_directories(Luau.Ast PUBLIC Ast/include)
++target_include_directories(Luau.Ast PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Ast/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.Ast PUBLIC Luau.Common)
+
+ target_compile_features(Luau.Compiler PUBLIC cxx_std_17)
+-target_include_directories(Luau.Compiler PUBLIC Compiler/include)
++target_include_directories(Luau.Compiler PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Compiler/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.Compiler PUBLIC Luau.Ast)
+
+ target_compile_features(Luau.Config PUBLIC cxx_std_17)
+-target_include_directories(Luau.Config PUBLIC Config/include)
++target_include_directories(Luau.Config PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Config/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.Config PUBLIC Luau.Ast)
+ target_link_libraries(Luau.Config PRIVATE Luau.Compiler Luau.VM)
+
+ target_compile_features(Luau.Analysis PUBLIC cxx_std_17)
+-target_include_directories(Luau.Analysis PUBLIC Analysis/include)
++target_include_directories(Luau.Analysis PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Analysis/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.Analysis PUBLIC Luau.Ast Luau.EqSat Luau.Config)
+ target_link_libraries(Luau.Analysis PRIVATE Luau.Compiler Luau.VM)
+
+ target_compile_features(Luau.EqSat PUBLIC cxx_std_17)
+-target_include_directories(Luau.EqSat PUBLIC EqSat/include)
++target_include_directories(Luau.EqSat PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/EqSat/include> $<INSTALL_INTERFACE:include/luau>)
+ target_link_libraries(Luau.EqSat PUBLIC Luau.Common)
+
+ target_compile_features(Luau.CodeGen PRIVATE cxx_std_17)
+-target_include_directories(Luau.CodeGen PUBLIC CodeGen/include)
++target_include_directories(Luau.VM PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/CodeGen/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ target_link_libraries(Luau.CodeGen PRIVATE Luau.VM Luau.VM.Internals) # Code generation needs VM internals
+ target_link_libraries(Luau.CodeGen PUBLIC Luau.Common)
+
+ target_compile_features(Luau.VM PRIVATE cxx_std_11)
+-target_include_directories(Luau.VM PUBLIC VM/include)
++target_include_directories(Luau.VM PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/VM/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ target_link_libraries(Luau.VM PUBLIC Luau.Common)
+
+ target_compile_features(Luau.Require PUBLIC cxx_std_17)
+@@ -189,22 +189,6 @@ if(MSVC AND LUAU_BUILD_CLI)
+ set_target_properties(Luau.Repl.CLI PROPERTIES LINK_FLAGS_DEBUG /STACK:2097152)
+ endif()
+
+-# embed .natvis inside the library debug information
+-if(MSVC)
+- target_link_options(Luau.Ast INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/Ast.natvis)
+- target_link_options(Luau.Analysis INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/Analysis.natvis)
+- target_link_options(Luau.CodeGen INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/CodeGen.natvis)
+- target_link_options(Luau.VM INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/VM.natvis)
+-endif()
+-
+-# make .natvis visible inside the solution
+-if(MSVC_IDE)
+- target_sources(Luau.Ast PRIVATE tools/natvis/Ast.natvis)
+- target_sources(Luau.Analysis PRIVATE tools/natvis/Analysis.natvis)
+- target_sources(Luau.CodeGen PRIVATE tools/natvis/CodeGen.natvis)
+- target_sources(Luau.VM PRIVATE tools/natvis/VM.natvis)
+-endif()
+-
+ # On Windows and Android threads are provided, on Linux/Mac/iOS we use pthreads
+ add_library(osthreads INTERFACE)
+ if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin|iOS")
+@@ -297,3 +281,54 @@ foreach(LIB Luau.Ast Luau.Compiler Luau.Config Luau.Analysis Luau.EqSat Luau.Cod
+ endif()
+ endif()
+ endforeach()
++
++# luau package
++include(GNUInstallDirs)
++include(CMakePackageConfigHelpers)
++
++write_basic_package_version_file(
++ ${CMAKE_CURRENT_BINARY_DIR}/unofficial-luau-config-version.cmake
++ VERSION "${VERSION}"
++ COMPATIBILITY AnyNewerVersion
++)
++
++install(FILES
++ ${CMAKE_CURRENT_BINARY_DIR}/unofficial-luau-config-version.cmake
++ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/unofficial-luau-config.cmake
++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-luau
++)
++
++install(
++ TARGETS Luau.Common Luau.Ast Luau.Compiler Luau.Config Luau.Analysis Luau.VM Luau.CLI.lib Luau.EqSat
++ EXPORT unofficial-luau-targets
++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++)
++
++if (LUAU_BUILD_CLI)
++ install(
++ TARGETS Luau.Repl.CLI
++ EXPORT unofficial-luau-targets
++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
++ )
++endif()
++
++install(
++ DIRECTORY "${CMAKE_SOURCE_DIR}/Common/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/Ast/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/Compiler/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/Config/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/Analysis/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/VM/include/"
++ DIRECTORY "${CMAKE_SOURCE_DIR}/VM/src/"
++ DESTINATION "include/luau"
++ FILES_MATCHING
++ PATTERN "*.h"
++)
++
++install(
++ EXPORT unofficial-luau-targets
++ NAMESPACE unofficial::luau::
++ DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-luau"
++)
+diff --git b/cmake/unofficial-luau-config.cmake b/cmake/unofficial-luau-config.cmake
+new file mode 100644
+index 0000000..13fd463
+--- /dev/null
++++ b/cmake/unofficial-luau-config.cmake
+@@ -0,0 +1 @@
++include(${CMAKE_CURRENT_LIST_DIR}/unofficial-luau-targets.cmake)
diff --git a/vcpkg/ports/luau/portfile.cmake b/vcpkg/ports/luau/portfile.cmake
new file mode 100644
index 0000000..911253e
--- /dev/null
+++ b/vcpkg/ports/luau/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO luau-lang/luau
+ REF ${VERSION}
+ SHA512 74e4ffc8dbd3f05bcd92fa0e0e75a96b393dc738ec3ccacacf3de58738ba2fa65c5aeaa4da7e317c06ce43deb66635dce34d777a91d4e41f4ac9a13186168c69
+ HEAD_REF master
+ PATCHES
+ cmake-config-export.patch
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ tool LUAU_BUILD_CLI
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DLUAU_BUILD_TESTS=OFF
+ -DVERSION=${VERSION}
+ ${FEATURE_OPTIONS}
+ OPTIONS_DEBUG
+ -DLUAU_BUILD_CLI=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-luau")
+
+if("tool" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES luau AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/luau/vcpkg.json b/vcpkg/ports/luau/vcpkg.json
new file mode 100644
index 0000000..fceef6f
--- /dev/null
+++ b/vcpkg/ports/luau/vcpkg.json
@@ -0,0 +1,23 @@
+{
+ "name": "luau",
+ "version": "0.698",
+ "description": "A fast, small, safe, gradually typed embeddable scripting language derived from Lua",
+ "homepage": "https://github.com/luau-lang/luau",
+ "license": "MIT",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "tool": {
+ "description": "Builds luau executable",
+ "supports": "!uwp"
+ }
+ }
+}