diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libnoise | |
Diffstat (limited to 'vcpkg/ports/libnoise')
| -rw-r--r-- | vcpkg/ports/libnoise/fix-build.patch | 100 | ||||
| -rw-r--r-- | vcpkg/ports/libnoise/portfile.cmake | 34 | ||||
| -rw-r--r-- | vcpkg/ports/libnoise/vcpkg.json | 18 |
3 files changed, 152 insertions, 0 deletions
diff --git a/vcpkg/ports/libnoise/fix-build.patch b/vcpkg/ports/libnoise/fix-build.patch new file mode 100644 index 0000000..e4b0741 --- /dev/null +++ b/vcpkg/ports/libnoise/fix-build.patch @@ -0,0 +1,100 @@ +diff --git a/noiseutils/CMakeLists.txt b/noiseutils/CMakeLists.txt +index 07747de..68db2a2 100644 +--- a/noiseutils/CMakeLists.txt ++++ b/noiseutils/CMakeLists.txt +@@ -19,11 +19,14 @@ if(BUILD_SHARED_LIBS) + + set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) + target_link_libraries(${TARGET_NAME} noise) +- target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) ++ target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:include>) + + # install dynamic libraries (.dll or .so) into /bin +- install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") +-endif() ++ install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseutilsTargets ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") ++else() + + #---------------------------------------- + # build static lib (it's good practice to include a lib file for the dll) +@@ -31,11 +34,22 @@ set(TARGET_NAME "${LIB_NAME}-static") + add_library(${TARGET_NAME} STATIC ${libSrcs}) + set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) + target_link_libraries(${TARGET_NAME} noise-static) +-target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) ++target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:include>) + # install static libraries (.lib) into /lib +-install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") ++install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseutilsTargets DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") + #---------------------------------------- +- ++endif() + # install include files into /include + install( FILES "${PROJECT_SOURCE_DIR}/noiseutils/noiseutils.h" +- DESTINATION "${CMAKE_INSTALL_PREFIX}/include/noise" ) +\ No newline at end of file ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/include/noise" ) ++ ++install(EXPORT unofficial-noiseutilsTargets ++ NAMESPACE unofficial::noiseutils:: ++ DESTINATION share/unofficial-noiseutils ++) ++ ++file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake.in" ++[[include("${CMAKE_CURRENT_LIST_DIR}/unofficial-noiseutilsTargets.cmake")]]) ++configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake" @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake DESTINATION share/unofficial-noiseutils) ++ +\ No newline at end of file +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 2757f30..47dcc51 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -60,10 +60,13 @@ if(BUILD_SHARED_LIBS) + add_library(${TARGET_NAME} SHARED ${libSrcs}) + endif() + set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) +- target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) ++ target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/noise> $<INSTALL_INTERFACE:include>) + target_compile_definitions(${TARGET_NAME} PRIVATE NOISE_BUILD_DLL) +- install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") +-endif() ++ install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseTargets ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") ++else() + + #---------------------------------------- + # build static lib (it's good practice to include a lib file for the dll) +@@ -71,12 +74,22 @@ set(TARGET_NAME "${LIB_NAME}-static") + message(STATUS "build ${TARGET_NAME}") + add_library(${TARGET_NAME} STATIC ${libSrcs}) + set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) +-target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) ++target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/noise> $<INSTALL_INTERFACE:include>) + target_compile_definitions(${TARGET_NAME} PUBLIC NOISE_STATIC) + # install static libraries (.lib) into /lib +-install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") ++install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseTargets DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") + #---------------------------------------- +- ++endif() + # install include files into /include + install( DIRECTORY "${PROJECT_SOURCE_DIR}/src/noise" +- DESTINATION "${CMAKE_INSTALL_PREFIX}/include" ) +\ No newline at end of file ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/include" ) ++ ++install(EXPORT unofficial-noiseTargets ++ NAMESPACE unofficial::noise:: ++ DESTINATION share/unofficial-noise ++) ++ ++file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake.in" ++[[include("${CMAKE_CURRENT_LIST_DIR}/unofficial-noiseTargets.cmake")]]) ++configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake" @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake DESTINATION share/unofficial-noise) diff --git a/vcpkg/ports/libnoise/portfile.cmake b/vcpkg/ports/libnoise/portfile.cmake new file mode 100644 index 0000000..a929f37 --- /dev/null +++ b/vcpkg/ports/libnoise/portfile.cmake @@ -0,0 +1,34 @@ +set( LIBNOISE_VERSION "1.0.0" )
+set( LIBNOISE_COMMIT "d7e68784a2b24c632868506780eba336ede74ecd" )
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO RobertHue/libnoise
+ REF ${LIBNOISE_COMMIT}
+ SHA512 8c4d654acb4ae3d90ee62ebdf0447f876022dcb887ebfad88f39b09d29183a58e6fc1b1f1d03edff804975c8befcc6eda33c44797495285aae338c2e869a14d7
+ HEAD_REF master
+ PATCHES fix-build.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_WALL=ON
+ -DBUILD_SPEED_OPTIMIZED=ON
+ -DBUILD_LIBNOISE_DOCUMENTATION=OFF
+ -DBUILD_LIBNOISE_UTILS=ON
+ -DBUILD_LIBNOISE_EXAMPLES=OFF
+)
+
+vcpkg_cmake_install()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-noise CONFIG_PATH share/unofficial-noise)
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-noiseutils CONFIG_PATH share/unofficial-noiseutils)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/noise/module/modulebase.h
+ "if NOISE_STATIC" "if 1" )
+endif()
+
+file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
\ No newline at end of file diff --git a/vcpkg/ports/libnoise/vcpkg.json b/vcpkg/ports/libnoise/vcpkg.json new file mode 100644 index 0000000..640e503 --- /dev/null +++ b/vcpkg/ports/libnoise/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "libnoise", + "version": "1.0.0", + "port-version": 3, + "description": "A general-purpose library that generates three-dimensional coherent noise. Useful for terrain generation and procedural texture generation. Uses a broad number of techniques (Perlin noise, ridged multifractal, etc.) and combinations of those techniques.", + "homepage": "https://github.com/RobertHue/libnoise", + "license": "LGPL-2.1", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |