diff options
Diffstat (limited to 'vcpkg/ports/yasm')
| -rw-r--r-- | vcpkg/ports/yasm/add-feature-tools.patch | 10 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/cmake-4.diff | 11 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/fix-cross-build.patch | 98 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/fix-overlay-pdb.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/portfile.cmake | 62 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/vcpkg-port-config.cmake | 27 | ||||
| -rw-r--r-- | vcpkg/ports/yasm/vcpkg.json | 36 |
7 files changed, 256 insertions, 0 deletions
diff --git a/vcpkg/ports/yasm/add-feature-tools.patch b/vcpkg/ports/yasm/add-feature-tools.patch new file mode 100644 index 0000000..4f49446 --- /dev/null +++ b/vcpkg/ports/yasm/add-feature-tools.patch @@ -0,0 +1,10 @@ +diff --git a/frontends/CMakeLists.txt b/frontends/CMakeLists.txt +index 9858b61..b151cc3 100644 +--- a/frontends/CMakeLists.txt ++++ b/frontends/CMakeLists.txt +@@ -1,3 +1,5 @@ ++if (BUILD_TOOLS) + ADD_SUBDIRECTORY(yasm) + ADD_SUBDIRECTORY(tasm) + ADD_SUBDIRECTORY(vsyasm) ++endif() diff --git a/vcpkg/ports/yasm/cmake-4.diff b/vcpkg/ports/yasm/cmake-4.diff new file mode 100644 index 0000000..14aaaec --- /dev/null +++ b/vcpkg/ports/yasm/cmake-4.diff @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8df871c..2eafe3f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,5 @@ + PROJECT(yasm) +-CMAKE_MINIMUM_REQUIRED(VERSION 2.4) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.5) + if (COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) + endif (COMMAND cmake_policy) diff --git a/vcpkg/ports/yasm/fix-cross-build.patch b/vcpkg/ports/yasm/fix-cross-build.patch new file mode 100644 index 0000000..5e28a9f --- /dev/null +++ b/vcpkg/ports/yasm/fix-cross-build.patch @@ -0,0 +1,98 @@ +diff --git a/cmake/modules/YasmMacros.cmake b/cmake/modules/YasmMacros.cmake +index ab1be00..0bd347f 100644 +--- a/cmake/modules/YasmMacros.cmake ++++ b/cmake/modules/YasmMacros.cmake +@@ -58,7 +58,9 @@ macro (YASM_ADD_MODULE _module_NAME) + endmacro (YASM_ADD_MODULE) + + macro (YASM_GENPERF _in_NAME _out_NAME) +- get_target_property(_tmp_GENPERF_EXE genperf LOCATION) ++ if (NOT _tmp_GENPERF_EXE) ++ set(_tmp_GENPERF_EXE genperf) ++ endif() + add_custom_command( + OUTPUT ${_out_NAME} + COMMAND ${_tmp_GENPERF_EXE} ${_in_NAME} ${_out_NAME} +@@ -68,7 +70,9 @@ macro (YASM_GENPERF _in_NAME _out_NAME) + endmacro (YASM_GENPERF) + + macro (YASM_RE2C _in_NAME _out_NAME) +- get_target_property(_tmp_RE2C_EXE re2c LOCATION) ++ if (NOT _tmp_RE2C_EXE) ++ set(_tmp_RE2C_EXE re2c) ++ endif() + add_custom_command( + OUTPUT ${_out_NAME} + COMMAND ${_tmp_RE2C_EXE} ${ARGN} -o ${_out_NAME} ${_in_NAME} +@@ -78,7 +82,9 @@ macro (YASM_RE2C _in_NAME _out_NAME) + endmacro (YASM_RE2C) + + macro (YASM_GENMACRO _in_NAME _out_NAME _var_NAME) +- get_target_property(_tmp_GENMACRO_EXE genmacro LOCATION) ++ if (NOT _tmp_GENMACRO_EXE) ++ set(_tmp_GENMACRO_EXE genmacro) ++ endif() + add_custom_command( + OUTPUT ${_out_NAME} + COMMAND ${_tmp_GENMACRO_EXE} ${_out_NAME} ${_var_NAME} ${_in_NAME} +diff --git a/modules/preprocs/nasm/CMakeLists.txt b/modules/preprocs/nasm/CMakeLists.txt +index e10a9dd..4d1bf15 100644 +--- a/modules/preprocs/nasm/CMakeLists.txt ++++ b/modules/preprocs/nasm/CMakeLists.txt +@@ -1,5 +1,8 @@ ++if (NOT _tmp_GENVERSION_EXE) + add_executable(genversion preprocs/nasm/genversion.c) +-get_target_property(_tmp_GENVERSION_EXE genversion LOCATION) ++install(TARGETS genversion RUNTIME DESTINATION bin) ++set(_tmp_GENVERSION_EXE genversion) ++endif() + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.mac + COMMAND ${_tmp_GENVERSION_EXE} ${CMAKE_CURRENT_BINARY_DIR}/version.mac +diff --git a/tools/genmacro/CMakeLists.txt b/tools/genmacro/CMakeLists.txt +index 27ba599..0168494 100644 +--- a/tools/genmacro/CMakeLists.txt ++++ b/tools/genmacro/CMakeLists.txt +@@ -1,3 +1,7 @@ ++if (NOT _tmp_GENMACRO_EXE) + add_executable(genmacro + genmacro.c + ) ++ ++install(TARGETS genmacro RUNTIME DESTINATION bin) ++endif() +\ No newline at end of file +diff --git a/tools/genperf/CMakeLists.txt b/tools/genperf/CMakeLists.txt +index 6f50989..87d19bc 100644 +--- a/tools/genperf/CMakeLists.txt ++++ b/tools/genperf/CMakeLists.txt +@@ -1,3 +1,4 @@ ++if (NOT _tmp_GENPERF_EXE) + add_executable(genperf + genperf.c + perfect.c +@@ -6,3 +7,6 @@ add_executable(genperf + ../../libyasm/xstrdup.c + ) + set_target_properties(genperf PROPERTIES COMPILE_FLAGS -DYASM_LIB_DECL=) ++ ++install(TARGETS genperf RUNTIME DESTINATION bin) ++endif() +\ No newline at end of file +diff --git a/tools/re2c/CMakeLists.txt b/tools/re2c/CMakeLists.txt +index 7125d49..f2f1a40 100644 +--- a/tools/re2c/CMakeLists.txt ++++ b/tools/re2c/CMakeLists.txt +@@ -1,3 +1,4 @@ ++if (NOT _tmp_RE2C_EXE) + add_executable(re2c + main.c + code.c +@@ -9,3 +10,6 @@ add_executable(re2c + substr.c + translate.c + ) ++ ++install(TARGETS re2c RUNTIME DESTINATION bin) ++endif() +\ No newline at end of file diff --git a/vcpkg/ports/yasm/fix-overlay-pdb.patch b/vcpkg/ports/yasm/fix-overlay-pdb.patch new file mode 100644 index 0000000..336ff32 --- /dev/null +++ b/vcpkg/ports/yasm/fix-overlay-pdb.patch @@ -0,0 +1,12 @@ +diff --git a/frontends/yasm/CMakeLists.txt b/frontends/yasm/CMakeLists.txt +index b11d7f8..b8306b1 100644 +--- a/frontends/yasm/CMakeLists.txt ++++ b/frontends/yasm/CMakeLists.txt +@@ -19,6 +19,7 @@ IF(BUILD_SHARED_LIBS) + yasm-plugin.c + ) + TARGET_LINK_LIBRARIES(yasm libyasm ${LIBDL}) ++ set_target_properties(yasm PROPERTIES PDB_NAME "yasm-tool") + ELSE(BUILD_SHARED_LIBS) + ADD_EXECUTABLE(yasm + yasm.c diff --git a/vcpkg/ports/yasm/portfile.cmake b/vcpkg/ports/yasm/portfile.cmake new file mode 100644 index 0000000..3cf4099 --- /dev/null +++ b/vcpkg/ports/yasm/portfile.cmake @@ -0,0 +1,62 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yasm/yasm + REF 009450c7ad4d425fa5a10ac4bd6efbd25248d823 # 1.3.0 plus bugfixes for https://github.com/yasm/yasm/issues/153 + SHA512 a542577558676d11b52981925ea6219bffe699faa1682c033b33b7534f5a0dfe9f29c56b32076b68c48f65e0aef7c451be3a3af804c52caa4d4357de4caad83c + HEAD_REF master + PATCHES + add-feature-tools.patch + cmake-4.diff + fix-cross-build.patch + fix-overlay-pdb.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + tools BUILD_TOOLS +) + +vcpkg_find_acquire_program(PYTHON3) + +set(HOST_TOOLS_OPTIONS "") +if (VCPKG_CROSSCOMPILING) + list(APPEND HOST_TOOLS_OPTIONS + "-D_tmp_RE2C_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/re2c${VCPKG_HOST_EXECUTABLE_SUFFIX}" + "-D_tmp_GENPERF_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genperf${VCPKG_HOST_EXECUTABLE_SUFFIX}" + "-D_tmp_GENMACRO_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genmacro${VCPKG_HOST_EXECUTABLE_SUFFIX}" + "-D_tmp_GENVERSION_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genversion${VCPKG_HOST_EXECUTABLE_SUFFIX}" + ) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + ${HOST_TOOLS_OPTIONS} + "-DPYTHON_EXECUTABLE=${PYTHON3}" + -DENABLE_NLS=OFF + -DYASM_BUILD_TESTS=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +if (NOT VCPKG_CROSSCOMPILING) + vcpkg_copy_tools(TOOL_NAMES re2c genmacro genperf genversion AUTO_CLEAN + DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" + ) +endif() + +if(BUILD_TOOLS) + vcpkg_copy_tools(TOOL_NAMES vsyasm yasm ytasm AUTO_CLEAN) + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(COPY "${CURRENT_PACKAGES_DIR}/bin/yasmstd${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" + DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + endif() +endif() + +file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/yasm/vcpkg-port-config.cmake b/vcpkg/ports/yasm/vcpkg-port-config.cmake new file mode 100644 index 0000000..af37428 --- /dev/null +++ b/vcpkg/ports/yasm/vcpkg-port-config.cmake @@ -0,0 +1,27 @@ +set(Z_YASM_TOOL_HELPER_LIST_DIR "${CMAKE_CURRENT_LIST_DIR}") + +function(yasm_tool_helper) + cmake_parse_arguments(PARSE_ARGV 0 arg + "APPEND_TO_PATH;PREPEND_TO_PATH" + "OUT_VAR" + "" + ) + + if(DEFINED arg_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "Unexpected arguments to yasm_tool_helper: ${arg_UNPARSED_ARGUMENTS}") + endif() + + find_program(YASM yasm PATHS "${Z_YASM_TOOL_HELPER_LIST_DIR}/../../tools/yasm") + + if(arg_APPEND_TO_PATH) + get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) + vcpkg_add_to_path("${YASM_EXE_PATH}") + endif() + if(arg_PREPEND_TO_PATH) + get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) + vcpkg_add_to_path(PREPEND "${YASM_EXE_PATH}") + endif() + if(DEFINED arg_OUT_VAR) + set("${arg_OUT_VAR}" "${YASM}" PARENT_SCOPE) + endif() +endfunction() diff --git a/vcpkg/ports/yasm/vcpkg.json b/vcpkg/ports/yasm/vcpkg.json new file mode 100644 index 0000000..7393149 --- /dev/null +++ b/vcpkg/ports/yasm/vcpkg.json @@ -0,0 +1,36 @@ +{ + "name": "yasm", + "version": "1.3.0", + "port-version": 7, + "description": "Yasm is a complete rewrite of the NASM assembler under the new BSD License.", + "homepage": "https://github.com/yasm/yasm", + "license": "BSD-2-Clause OR BSD-3-Clause OR Artistic-1.0 OR GPL-2.0-only OR LGPL-2.0-only", + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + { + "name": "yasm", + "host": true, + "default-features": false, + "features": [ + "tools" + ], + "platform": "!native" + } + ], + "default-features": [ + "tools" + ], + "features": { + "tools": { + "description": "Build yasm tools" + } + } +} |