diff --git a/.devcontainer b/.devcontainer index 9d4fcf4bf..7f4db12bf 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit 9d4fcf4bfc12d259ebaea9e2f2bb682661cc31bc +Subproject commit 7f4db12bf1f0e1cc1fd325aa448ac2fb786acf96 diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 169ff5269..5811f8dec 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -1,4 +1,7 @@ name: Build +permissions: + contents: read + pull-requests: write on: push: branches: [ "dev" ] @@ -7,24 +10,15 @@ on: workflow_dispatch: jobs: linux: - uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 - with: - cmake-workflow-preset: Linux - runon: ubuntu-latest - secrets: inherit - linux-arm64: - uses: externpro/externpro/.github/workflows/build-linux.yml@25.06 - with: - cmake-workflow-preset: Linux - runon: ubuntu-24.04-arm + permissions: + contents: read + pull-requests: write + packages: write + uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.3 secrets: inherit macos: - uses: externpro/externpro/.github/workflows/build-macos.yml@25.06 - with: - cmake-workflow-preset: Darwin + uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.3 secrets: inherit windows: - uses: externpro/externpro/.github/workflows/build-windows.yml@25.06 - with: - cmake-workflow-preset: Windows + uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.3 secrets: inherit diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml index 146191466..86b6f88b5 100644 --- a/.github/workflows/xprelease.yml +++ b/.github/workflows/xprelease.yml @@ -9,10 +9,9 @@ on: jobs: # Upload build artifacts as release assets release-from-build: - uses: externpro/externpro/.github/workflows/release-from-build.yml@25.06 + uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.3 with: workflow_run_url: ${{ github.event.inputs.workflow_run_url }} - artifact_pattern: "*.tar.xz" permissions: contents: write id-token: write diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f192b8c9..a77020212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,6 @@ cmake_minimum_required ( VERSION 2.8...3.31 ) set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) project ( lua C ) -include(GNUInstallDirs) -include(xpflags) include ( cmake/dist.cmake ) ## CONFIGURATION @@ -148,29 +146,14 @@ add_executable ( luac ${SRC_CORE} ${SRC_LIB} ${SRC_LUAC} src/luac.rc ) target_link_libraries ( luac ${LIBS} ) set(targetsFile ${PROJECT_NAME}-targets) -if(NOT DEFINED XP_INSTALL_CMAKEDIR) - set(XP_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) -endif() if(DEFINED XP_NAMESPACE) - set(nameSpace NAMESPACE ${XP_NAMESPACE}::) - xpPackageDevel(TARGETS_FILE ${targetsFile} EXE ${XP_NAMESPACE}::lua LIBRARIES ${XP_NAMESPACE}::liblua) - set(LUA_COMPONENT_RT devel) - set(LUA_COMPONENT_LIB devel) - set(LUA_COMPONENT_HDR devel) - set(LUA_COMPONENT_DATA devel) - set(LUA_COMPONENT_DOC devel) - set(LUA_COMPONENT_EX devel) - set(LUA_COMPONENT_TEST devel) - set(LUA_COMPONENT_OTH devel) -else() - set(LUA_COMPONENT_RT Runtime) - set(LUA_COMPONENT_LIB Library) - set(LUA_COMPONENT_HDR Header) - set(LUA_COMPONENT_DATA Data) - set(LUA_COMPONENT_DOC Documentation) - set(LUA_COMPONENT_EX Example) - set(LUA_COMPONENT_TEST Test) - set(LUA_COMPONENT_OTH Other) + xpExternPackage(NAMESPACE ${XP_NAMESPACE} + TARGETS_FILE ${targetsFile} EXE lua LIBRARIES liblua + BASE v5.2.3 XPDIFF "patch" + WEB "http://www.lua.org/" UPSTREAM "github.com/lua/lua" + DESC "a powerful, fast, lightweight, embeddable scripting language" + LICENSE "[MIT](http://www.lua.org/license.html 'MIT License')" + ) endif() # On windows a variant of the lua interpreter without console output needs to be built diff --git a/cmake/dist.cmake b/cmake/dist.cmake index 12da7087f..3927dc10c 100644 --- a/cmake/dist.cmake +++ b/cmake/dist.cmake @@ -142,7 +142,7 @@ macro ( install_executable ) SOVERSION ${DIST_VERSION} ) endif () install ( TARGETS ${_file} EXPORT ${targetsFile} RUNTIME DESTINATION ${INSTALL_BIN} - COMPONENT ${LUA_COMPONENT_RT} CONFIGURATIONS Release ) + COMPONENT Runtime CONFIGURATIONS Release ) endforeach() endmacro () @@ -160,10 +160,16 @@ macro ( install_library ) SOVERSION ${DIST_VERSION} ) endif () install ( TARGETS ${_file} EXPORT ${targetsFile} - RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT ${LUA_COMPONENT_RT} - LIBRARY DESTINATION ${INSTALL_LIB} COMPONENT ${LUA_COMPONENT_RT} - ARCHIVE DESTINATION ${INSTALL_LIB} COMPONENT ${LUA_COMPONENT_LIB} ) + RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT Runtime + LIBRARY DESTINATION ${INSTALL_LIB} COMPONENT Runtime + ARCHIVE DESTINATION ${INSTALL_LIB} COMPONENT Library ) endforeach() + if(DEFINED XP_NAMESPACE) + set(nameSpace NAMESPACE ${XP_NAMESPACE}::) + endif() + if(NOT DEFINED XP_INSTALL_CMAKEDIR) + set(XP_INSTALL_CMAKEDIR ${INSTALL_SHARE}/cmake) + endif() install(EXPORT ${targetsFile} DESTINATION ${XP_INSTALL_CMAKEDIR} ${nameSpace}) endmacro () @@ -191,10 +197,10 @@ macro ( install_header ) foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_HDR} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Header ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_HDR} ) + COMPONENT Header ) endif () endforeach() endmacro () @@ -214,10 +220,10 @@ macro ( install_data ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_DATA} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Data ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_DATA} ) + COMPONENT Data ) endif () endforeach() endmacro () @@ -236,10 +242,10 @@ macro ( install_doc ) foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_DOC} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Documentation ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_DOC} ) + COMPONENT Documentation ) endif () endforeach() endmacro () @@ -258,10 +264,10 @@ macro ( install_example ) foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_EX} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Example ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_EX} ) + COMPONENT Example ) endif () endforeach() endmacro () @@ -280,10 +286,10 @@ macro ( install_test ) foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_TEST} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Test ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_TEST} ) + COMPONENT Test ) endif () endforeach() endmacro () @@ -302,10 +308,10 @@ macro ( install_foo ) foreach ( _file ${_ARG_DEFAULT_ARGS} ) if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) install ( DIRECTORY ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_OTH} ${_ARG_PATTERN} ${_ARG_REGEX} ) + COMPONENT Other ${_ARG_PATTERN} ${_ARG_REGEX} ) else () install ( FILES ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} - COMPONENT ${LUA_COMPONENT_OTH} ) + COMPONENT Other ) endif () endforeach() endmacro ()