From 51fce8c8d8ebafc9ad314d3d0b242b23e1e15ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Wed, 21 Oct 2020 16:31:06 -0700 Subject: [libnoise] Fix build and header, install FindLibNoise.cmake (#14141) --- ports/libnoise/CONTROL | 2 ++ ports/libnoise/fix-build.patch | 56 ++++++++++++++++++++++++++++++++++++++++++ ports/libnoise/portfile.cmake | 22 +++++++++++------ 3 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 ports/libnoise/fix-build.patch diff --git a/ports/libnoise/CONTROL b/ports/libnoise/CONTROL index 53009a450..144273305 100644 --- a/ports/libnoise/CONTROL +++ b/ports/libnoise/CONTROL @@ -1,3 +1,5 @@ Source: libnoise Version: 1.0.0 +Port-Version: 1 +Homepage: https://github.com/RobertHue/libnoise 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. diff --git a/ports/libnoise/fix-build.patch b/ports/libnoise/fix-build.patch new file mode 100644 index 000000000..c0b7d7ce5 --- /dev/null +++ b/ports/libnoise/fix-build.patch @@ -0,0 +1,56 @@ +diff --git a/noiseutils/CMakeLists.txt b/noiseutils/CMakeLists.txt +index 07747de..08c0bda 100644 +--- a/noiseutils/CMakeLists.txt ++++ b/noiseutils/CMakeLists.txt +@@ -22,8 +22,11 @@ if(BUILD_SHARED_LIBS) + target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) + + # install dynamic libraries (.dll or .so) into /bin +- install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") +-endif() ++ install(TARGETS ${TARGET_NAME} ++ 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) +@@ -35,7 +38,7 @@ target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) + # install static libraries (.lib) into /lib + install(TARGETS ${TARGET_NAME} 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 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 2757f30..7a135c2 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -62,8 +62,11 @@ if(BUILD_SHARED_LIBS) + set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) + target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) + target_compile_definitions(${TARGET_NAME} PRIVATE NOISE_BUILD_DLL) +- install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") +-endif() ++ install(TARGETS ${TARGET_NAME} ++ 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) +@@ -76,7 +79,7 @@ target_compile_definitions(${TARGET_NAME} PUBLIC NOISE_STATIC) + # install static libraries (.lib) into /lib + install(TARGETS ${TARGET_NAME} 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 diff --git a/ports/libnoise/portfile.cmake b/ports/libnoise/portfile.cmake index 28465f585..5c14ae663 100644 --- a/ports/libnoise/portfile.cmake +++ b/ports/libnoise/portfile.cmake @@ -1,5 +1,3 @@ -include(vcpkg_common_functions) - set( LIBNOISE_VERSION "1.0.0" ) set( LIBNOISE_COMMIT "d7e68784a2b24c632868506780eba336ede74ecd" ) @@ -9,21 +7,29 @@ vcpkg_from_github( REF ${LIBNOISE_COMMIT} SHA512 8c4d654acb4ae3d90ee62ebdf0447f876022dcb887ebfad88f39b09d29183a58e6fc1b1f1d03edff804975c8befcc6eda33c44797495285aae338c2e869a14d7 HEAD_REF master + PATCHES fix-build.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + OPTIONS + -DBUILD_WALL=ON + -DBUILD_SPEED_OPTIMIZED=ON + -DBUILD_LIBNOISE_DOCUMENTATION=OFF + -DBUILD_LIBNOISE_UTILS=ON + -DBUILD_LIBNOISE_EXAMPLES=OFF ) vcpkg_install_cmake() -# Include files should not be duplicated into the /debug/include directory. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/libnoise) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libnoise/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/libnoise/copyright) +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}/cmake/Modules/FindLibNoise.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -# Post-build test for cmake libraries -vcpkg_test_cmake(PACKAGE_NAME libnoise) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file -- cgit v1.2.3