diff --git a/cmake/find-modules/FindLibNoise.cmake b/cmake/find-modules/FindLibNoise.cmake index af4860166a..8369421c3c 100644 --- a/cmake/find-modules/FindLibNoise.cmake +++ b/cmake/find-modules/FindLibNoise.cmake @@ -8,10 +8,30 @@ endif () include(FindPackageHandleStandardArgs) -find_path(LibNoise_INCLUDE_DIR noise.h - PATH_SUFFIXES include include/noise include/libnoise +# Cytopia includes libnoise as , so the include directory must +# be the parent of the noise/ folder (e.g. /include), not the folder itself. +find_path(LibNoise_INCLUDE_DIR noise/noise.h + PATH_SUFFIXES include HINTS ${LIBNOISE_DIR} $ENV{LIBNOISE_DIR} ) + +# Debian/Ubuntu install the headers in /include/libnoise/ instead of +# /include/noise/. Provide a compatibility symlink so that +# keeps working with distro packages. +if (NOT LibNoise_INCLUDE_DIR) + find_path(LibNoise_INCLUDE_DIR libnoise/noise.h + PATH_SUFFIXES include + HINTS ${LIBNOISE_DIR} $ENV{LIBNOISE_DIR} + ) + if (LibNoise_INCLUDE_DIR) + set(_noise_compat_dir "${CMAKE_BINARY_DIR}/noise-compat") + file(MAKE_DIRECTORY "${_noise_compat_dir}") + if (NOT EXISTS "${_noise_compat_dir}/noise") + file(CREATE_LINK "${LibNoise_INCLUDE_DIR}/libnoise" "${_noise_compat_dir}/noise" SYMBOLIC) + endif () + set(LibNoise_INCLUDE_DIR "${_noise_compat_dir}") + endif () +endif () find_library(LibNoise_LIBRARY NAMES noise noiseutils noise-static noiseutils-static PATH_SUFFIXES lib/x64 lib/x86