From 2986a6c57d5fc3dcad3f4e9c41db340d8392e164 Mon Sep 17 00:00:00 2001 From: Kalessin Date: Fri, 7 Jul 2017 22:12:09 +0200 Subject: [PATCH 1/6] add LuaJIT port --- ports/luajit/CONTROL | 3 ++ ports/luajit/portfile.cmake | 66 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 ports/luajit/CONTROL create mode 100644 ports/luajit/portfile.cmake diff --git a/ports/luajit/CONTROL b/ports/luajit/CONTROL new file mode 100644 index 000000000..5a5ad6b91 --- /dev/null +++ b/ports/luajit/CONTROL @@ -0,0 +1,3 @@ +Source: luajit +Version: 2.0.5 +Description: LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language. diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake new file mode 100644 index 000000000..d00aaf73b --- /dev/null +++ b/ports/luajit/portfile.cmake @@ -0,0 +1,66 @@ +include(vcpkg_common_functions) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LuaJIT-2.0.5) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LuaJIT/LuaJIT + REF v2.0.5 + SHA512 65d982d7fe532a61335613f414f3b8fa5333747bdf7aefc2c2d52022d227594ade827639049b97e3c4ffae9f38f32cb15f1a17b1780fb0a943e1a3af05e2b576 + HEAD_REF master +) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/luajit) + +set (SRC ${SOURCE_PATH}/src) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set (LJIT_STATIC "") +else() + set (LJIT_STATIC "static") +endif() + +message(STATUS "Building ${TARGET_TRIPLET}-dbg") + +file(REMOVE "${SOURCE_PATH}/src/*.dll") +file(REMOVE "${SOURCE_PATH}/src/*.exe") +vcpkg_execute_required_process_repeat( + COUNT 1 + COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" "debug" ${LJIT_STATIC} + WORKING_DIRECTORY "${SOURCE_PATH}/src/" + LOGNAME build-${TARGET_TRIPLET}-dbg +) + + +file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +message(STATUS "Building ${TARGET_TRIPLET}-rel") + +file(REMOVE "${SOURCE_PATH}/src/*.dll") +file(REMOVE "${SOURCE_PATH}/src/*.exe") +vcpkg_execute_required_process_repeat( + COUNT 1 + COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" ${LJIT_STATIC} + WORKING_DIRECTORY "${SOURCE_PATH}/src/" + LOGNAME build-${TARGET_TRIPLET}-rel +) + +file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +endif() + +file(INSTALL ${SRC}/lua.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/luajit.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/luaconf.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lualib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lauxlib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lua.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) From ea99a07799704967f84ee2d51a18148dd2ec428d Mon Sep 17 00:00:00 2001 From: Kalessin Date: Fri, 7 Jul 2017 23:21:40 +0200 Subject: [PATCH 2/6] fix static build --- ports/luajit/001-fixStaticBuild.patch | 20 ++++++++++++ ports/luajit/portfile.cmake | 47 +++++++++++++++++---------- 2 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 ports/luajit/001-fixStaticBuild.patch diff --git a/ports/luajit/001-fixStaticBuild.patch b/ports/luajit/001-fixStaticBuild.patch new file mode 100644 index 000000000..11b6ea219 --- /dev/null +++ b/ports/luajit/001-fixStaticBuild.patch @@ -0,0 +1,20 @@ +diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat +index bd0c4c5..1210fd2 100644 +--- a/src/msvcbuild.bat ++++ b/src/msvcbuild.bat +@@ -67,6 +67,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c + @shift + @set LJCOMPILE=%LJCOMPILE% /Zi + @set LJLINK=%LJLINK% /debug ++@set DEBUG=1 + :NODEBUG + @if "%1"=="amalg" goto :AMALGDLL + @if "%1"=="static" goto :STATIC +@@ -76,6 +77,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c + @if errorlevel 1 goto :BAD + @goto :MTDLL + :STATIC ++@if "%DEBUG%"=="1" set LJCOMPILE=%LJCOMPILE% /MTd + %LJCOMPILE% lj_*.c lib_*.c + @if errorlevel 1 goto :BAD + %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake index d00aaf73b..42f26d7b4 100644 --- a/ports/luajit/portfile.cmake +++ b/ports/luajit/portfile.cmake @@ -21,46 +21,59 @@ else() set (LJIT_STATIC "static") endif() +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/001-fixStaticBuild.patch +) + message(STATUS "Building ${TARGET_TRIPLET}-dbg") -file(REMOVE "${SOURCE_PATH}/src/*.dll") -file(REMOVE "${SOURCE_PATH}/src/*.exe") +file(REMOVE "${SRC}/*.dll") +file(REMOVE "${SRC}/*.exe") +file(REMOVE "${SRC}/*.lib") + vcpkg_execute_required_process_repeat( COUNT 1 - COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" "debug" ${LJIT_STATIC} + COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" debug ${LJIT_STATIC} WORKING_DIRECTORY "${SOURCE_PATH}/src/" LOGNAME build-${TARGET_TRIPLET}-dbg ) - -file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools) +file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() +file(REMOVE "${SRC}/*.dll") +file(REMOVE "${SRC}/*.exe") +file(REMOVE "${SRC}/*.lib") + message(STATUS "Building ${TARGET_TRIPLET}-rel") -file(REMOVE "${SOURCE_PATH}/src/*.dll") -file(REMOVE "${SOURCE_PATH}/src/*.exe") -vcpkg_execute_required_process_repeat( +vcpkg_execute_required_process_repeat(d8un COUNT 1 COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" ${LJIT_STATIC} WORKING_DIRECTORY "${SOURCE_PATH}/src/" LOGNAME build-${TARGET_TRIPLET}-rel ) -file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) +file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) +file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) endif() -file(INSTALL ${SRC}/lua.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${SRC}/luajit.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${SRC}/luaconf.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${SRC}/lualib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${SRC}/lauxlib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${SRC}/lua.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lua.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/luajit.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/luaconf.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lualib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lauxlib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SRC}/lua.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +file(REMOVE "${SRC}/*.dll") +file(REMOVE "${SRC}/*.exe") +file(REMOVE "${SRC}/*.lib") From 0e866f673038eb22d958e54551369448082b215a Mon Sep 17 00:00:00 2001 From: Kalessin Date: Fri, 7 Jul 2017 23:27:09 +0200 Subject: [PATCH 3/6] add pdb copy command --- ports/luajit/portfile.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake index 42f26d7b4..ddcd5eb54 100644 --- a/ports/luajit/portfile.cmake +++ b/ports/luajit/portfile.cmake @@ -46,6 +46,7 @@ file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/li if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() +vcpkg_copy_pdbs() file(REMOVE "${SRC}/*.dll") file(REMOVE "${SRC}/*.exe") @@ -66,6 +67,7 @@ file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) endif() +vcpkg_copy_pdbs() file(INSTALL ${SRC}/lua.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SRC}/luajit.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) From 56833bd4f5367b06970e5905c9687ff63724bc30 Mon Sep 17 00:00:00 2001 From: Kalessin Date: Fri, 7 Jul 2017 23:30:44 +0200 Subject: [PATCH 4/6] disable build for uwp --- ports/luajit/portfile.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake index ddcd5eb54..da68d3ad4 100644 --- a/ports/luajit/portfile.cmake +++ b/ports/luajit/portfile.cmake @@ -1,5 +1,9 @@ include(vcpkg_common_functions) +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "LuaJIT currently only supports being built for desktop") +endif() + set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LuaJIT-2.0.5) vcpkg_from_github( From e8f681855c9890f1dc380274c6327511e417071c Mon Sep 17 00:00:00 2001 From: Kalessin Date: Sat, 22 Jul 2017 10:05:36 +0200 Subject: [PATCH 5/6] link to debug runtime --- ports/luajit/001-fixStaticBuild.patch | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ports/luajit/001-fixStaticBuild.patch b/ports/luajit/001-fixStaticBuild.patch index 11b6ea219..240a1beec 100644 --- a/ports/luajit/001-fixStaticBuild.patch +++ b/ports/luajit/001-fixStaticBuild.patch @@ -10,11 +10,17 @@ index bd0c4c5..1210fd2 100644 :NODEBUG @if "%1"=="amalg" goto :AMALGDLL @if "%1"=="static" goto :STATIC -@@ -76,6 +77,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c +-%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL lj_*.c lib_*.c ++@if "%DEBUG%"=="1" set LJCOMPILE=%LJCOMPILE% /MDd ++@if "%DEBUG%"=="" set LJCOMPILE=%LJCOMPILE% /MD ++%LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c + @if errorlevel 1 goto :BAD + %LJLINK% /DLL /out:%LJDLLNAME% lj_*.obj lib_*.obj @if errorlevel 1 goto :BAD @goto :MTDLL :STATIC +@if "%DEBUG%"=="1" set LJCOMPILE=%LJCOMPILE% /MTd ++@if "%DEBUG%"=="" set LJCOMPILE=%LJCOMPILE% /MT %LJCOMPILE% lj_*.c lib_*.c @if errorlevel 1 goto :BAD - %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj + %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj \ No newline at end of file From 349fba17c739a056dc5e96ac532a326a7323bcdc Mon Sep 17 00:00:00 2001 From: Kalessin Date: Sun, 23 Jul 2017 20:43:57 +0200 Subject: [PATCH 6/6] fix luajit patch --- ports/luajit/001-fixStaticBuild.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/luajit/001-fixStaticBuild.patch b/ports/luajit/001-fixStaticBuild.patch index 240a1beec..b21991702 100644 --- a/ports/luajit/001-fixStaticBuild.patch +++ b/ports/luajit/001-fixStaticBuild.patch @@ -1,8 +1,8 @@ diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat -index bd0c4c5..1210fd2 100644 +index bd0c4c5..95e1cf4 100644 --- a/src/msvcbuild.bat +++ b/src/msvcbuild.bat -@@ -67,6 +67,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c +@@ -67,15 +67,20 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c @shift @set LJCOMPILE=%LJCOMPILE% /Zi @set LJLINK=%LJLINK% /debug @@ -23,4 +23,4 @@ index bd0c4c5..1210fd2 100644 +@if "%DEBUG%"=="" set LJCOMPILE=%LJCOMPILE% /MT %LJCOMPILE% lj_*.c lib_*.c @if errorlevel 1 goto :BAD - %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj \ No newline at end of file + %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj