diff --git a/ports/rewolf-wow64ext/CMakeLists.txt b/ports/rewolf-wow64ext/CMakeLists.txt new file mode 100644 index 0000000000..eb37f7ff3b --- /dev/null +++ b/ports/rewolf-wow64ext/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.14) +project(rewolf-wow64ext VERSION 1.0.0.9 LANGUAGES CXX) + +include(CMakePackageConfigHelpers) + +add_library(wow64ext SHARED + src/wow64ext.cpp + src/wow64ext.rc + src/wow64ext.h + src/internal.h + src/CMemPtr.h + src/resource.h +) + +target_compile_features(wow64ext PRIVATE + cxx_std_11 +) + +target_compile_definitions(wow64ext PRIVATE + WOW64EXT_EXPORTS +) + +target_link_options(wow64ext PRIVATE + /SUBSYSTEM:WINDOWS +) + +target_include_directories(wow64ext + INTERFACE + $ +) + +install( + TARGETS wow64ext + EXPORT wow64extTargets + ARCHIVE DESTINATION "lib" + LIBRARY DESTINATION "lib" + RUNTIME DESTINATION "bin" +) + +install( + FILES "src/wow64ext.h" + DESTINATION "include" +) + +install( + EXPORT wow64extTargets + FILE wow64extTargets.cmake + NAMESPACE wow64ext:: + DESTINATION "lib/cmake/wow64ext" +) + +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wow64extConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfig.cmake" + INSTALL_DESTINATION "lib/cmake/wow64ext" +) + +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfigVersion.cmake" + DESTINATION "lib/cmake/wow64ext" +) diff --git a/ports/rewolf-wow64ext/portfile.cmake b/ports/rewolf-wow64ext/portfile.cmake new file mode 100644 index 0000000000..da9ad7c3e6 --- /dev/null +++ b/ports/rewolf-wow64ext/portfile.cmake @@ -0,0 +1,26 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rwfpl/rewolf-wow64ext + REF "v${VERSION}" + SHA512 bbd96200bb7ba581ce58c3935dff8f1cf336b58f88139ba53511fc9f9f3c98fc030db93b0586011a8afeb07a87b719a15498db2696c567beb4c6b55009c77e47 + HEAD_REF main +) + +file(REMOVE_RECURSE "${SOURCE_PATH}/bin") + +file(MAKE_DIRECTORY "${SOURCE_PATH}/cmake") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/wow64extConfig.cmake.in" DESTINATION "${SOURCE_PATH}/cmake") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/wow64ext" PACKAGE_NAME "wow64ext") +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lgpl-3.0.txt") diff --git a/ports/rewolf-wow64ext/vcpkg.json b/ports/rewolf-wow64ext/vcpkg.json new file mode 100644 index 0000000000..c2619ddbdb --- /dev/null +++ b/ports/rewolf-wow64ext/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "rewolf-wow64ext", + "version": "1.0.0.9", + "description": "Helper library for x86 programs that runs under WOW64 layer on x64 versions of Microsoft Windows operating systems.", + "homepage": "https://github.com/rwfpl/rewolf-wow64ext/", + "license": "LGPL-3.0-or-later", + "supports": "windows & !mingw & x86", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/ports/rewolf-wow64ext/wow64extConfig.cmake.in b/ports/rewolf-wow64ext/wow64extConfig.cmake.in new file mode 100644 index 0000000000..8d003a6025 --- /dev/null +++ b/ports/rewolf-wow64ext/wow64extConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/wow64extTargets.cmake") + +check_required_components(wow64ext) diff --git a/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/portfile.cmake b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/portfile.cmake new file mode 100644 index 0000000000..bd8027a6bd --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/portfile.cmake @@ -0,0 +1,7 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" +) + +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/CMakeLists.txt new file mode 100644 index 0000000000..5470e0ce74 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.25.1) +project(rewolf-wow64ext-test LANGUAGES CXX) +set(CMAKE_CXX_STANDARD 11) +find_package(wow64ext CONFIG REQUIRED) +add_executable(main main.cpp) +target_link_libraries(main PRIVATE wow64ext::wow64ext) diff --git a/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/main.cpp b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/main.cpp new file mode 100644 index 0000000000..c1504044fb --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/main.cpp @@ -0,0 +1,6 @@ +#include +int main() +{ + auto handle = GetModuleHandle64(L"user32.dll"); + return 0; +} diff --git a/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/vcpkg.json b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/vcpkg.json new file mode 100644 index 0000000000..e40c24a9af --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-rewolf-wow64ext/vcpkg.json @@ -0,0 +1,12 @@ +{ + "name": "vcpkg-ci-rewolf-wow64ext", + "version-string": "ci", + "description": "Validates rewolf-wow64ext", + "dependencies": [ + "rewolf-wow64ext", + { + "name": "vcpkg-cmake", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 62b9e1c9d9..9c5df41c67 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -8516,6 +8516,10 @@ "baseline": "1.0.0", "port-version": 0 }, + "rewolf-wow64ext": { + "baseline": "1.0.0.9", + "port-version": 0 + }, "rexo": { "baseline": "0.2.2", "port-version": 0 diff --git a/versions/r-/rewolf-wow64ext.json b/versions/r-/rewolf-wow64ext.json new file mode 100644 index 0000000000..8954cadd94 --- /dev/null +++ b/versions/r-/rewolf-wow64ext.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "573ebc4cf451fbb38e42b32b197ea763005db5ca", + "version": "1.0.0.9", + "port-version": 0 + } + ] +}