diff options
Diffstat (limited to 'vcpkg/ports/luajit/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/luajit/portfile.cmake | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/vcpkg/ports/luajit/portfile.cmake b/vcpkg/ports/luajit/portfile.cmake new file mode 100644 index 0000000..2906de6 --- /dev/null +++ b/vcpkg/ports/luajit/portfile.cmake @@ -0,0 +1,111 @@ +set(extra_patches "") +if (VCPKG_TARGET_IS_OSX) + list(APPEND extra_patches 005-do-not-pass-ld-e-macosx.patch) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LuaJIT/LuaJIT + REF d0e88930ddde28ff662503f9f20facf34f7265aa #2023-01-04 + SHA512 e4111b2d7eeb05676c62d69da13a380a51d98f082c0be575a414c09ee27ff17d101b5b4a95e1b8a1bad14d55a4d2b305718a11878fbf36e0d3d48e62ba03407f + HEAD_REF master + PATCHES + msvcbuild.patch + 003-do-not-set-macosx-deployment-target.patch + ${extra_patches} +) + +vcpkg_cmake_get_vars(cmake_vars_file) +include("${cmake_vars_file}") + +if(VCPKG_DETECTED_MSVC) + # Due to lack of better MSVC cross-build support, just always build the host + # minilua tool with the target toolchain. This will work for native builds and + # for targeting x86 from x64 hosts. (UWP and ARM64 is unsupported.) + vcpkg_list(SET options) + if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND options "MSVCBUILD_OPTIONS=static") + endif() + + vcpkg_install_nmake(SOURCE_PATH "${SOURCE_PATH}" + PROJECT_NAME "${CMAKE_CURRENT_LIST_DIR}/Makefile.nmake" + OPTIONS + ${options} + ) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/luajit/luaconf.h" "defined(LUA_BUILD_AS_DLL)" "1") + endif() + + file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/luajit.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") + if(NOT VCPKG_BUILD_TYPE) + file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/luajit.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") + endif() + + vcpkg_copy_pdbs() +else() + vcpkg_list(SET options) + if(VCPKG_CROSSCOMPILING) + list(APPEND options + "LJARCH=${VCPKG_TARGET_ARCHITECTURE}" + "BUILDVM_X=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/buildvm-${VCPKG_TARGET_ARCHITECTURE}${VCPKG_HOST_EXECUTABLE_SUFFIX}" + ) + endif() + + vcpkg_list(SET make_options "EXECUTABLE_SUFFIX=${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + set(strip_options "") # cf. src/Makefile + if(VCPKG_TARGET_IS_OSX) + vcpkg_list(APPEND make_options "TARGET_SYS=Darwin") + set(strip_options " -x") + elseif(VCPKG_TARGET_IS_IOS) + vcpkg_list(APPEND make_options "TARGET_SYS=iOS") + set(strip_options " -x") + elseif(VCPKG_TARGET_IS_LINUX) + vcpkg_list(APPEND make_options "TARGET_SYS=Linux") + elseif(VCPKG_TARGET_IS_WINDOWS) + vcpkg_list(APPEND make_options "TARGET_SYS=Windows") + set(strip_options " --strip-unneeded") + endif() + + set(dasm_archs "") + if("buildvm-32" IN_LIST FEATURES) + string(APPEND dasm_archs " arm x86") + endif() + if("buildvm-64" IN_LIST FEATURES) + string(APPEND dasm_archs " arm64 x64") + endif() + + file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure" DESTINATION "${SOURCE_PATH}") + vcpkg_configure_make(SOURCE_PATH "${SOURCE_PATH}" + COPY_SOURCE + OPTIONS + "BUILDMODE=${VCPKG_LIBRARY_LINKAGE}" + ${options} + OPTIONS_RELEASE + "DASM_ARCHS=${dasm_archs}" + ) + vcpkg_install_make( + MAKEFILE "Makefile.vcpkg" + OPTIONS + ${make_options} + "TARGET_AR=${VCPKG_DETECTED_CMAKE_AR} rcus" + "TARGET_STRIP=${VCPKG_DETECTED_CMAKE_STRIP}${strip_options}" + ) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/lib/lua" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/lib/lua" + "${CURRENT_PACKAGES_DIR}/share/lua" + "${CURRENT_PACKAGES_DIR}/share/man" +) + +vcpkg_copy_tools(TOOL_NAMES luajit AUTO_CLEAN) + +vcpkg_fixup_pkgconfig() + +file(COPY "${SOURCE_PATH}/src/jit/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/luajit/jit") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") |