mjansson / mdns

Public domain mDNS/DNS-SD library in C
The Unlicense
437 stars 117 forks source link

GNUInstallDirs should be included before usage of CMAKE_INSTALL_INCLUDEDIR #85

Closed ruslo closed 2 months ago

ruslo commented 3 months ago

If it's included too late, the interface directory will not be populated.

Currently:

$ cmake -B _builds -D CMAKE_INSTALL_PREFIX=${HOME}/opt/mdns
$ cmake --build _builds --target install

$ grep INTERFACE_INCLUDE_DIRECTORIES ${HOME}/opt/mdns/share/cmake/mdns/mdnsTargets.cmake || echo FAIL
FAIL

As a workaround, CMAKE_INSTALL_INCLUDEDIR can be added explicitly:

$ cmake -B _builds -D CMAKE_INSTALL_PREFIX=${HOME}/opt/mdns -D CMAKE_INSTALL_INCLUDEDIR=include
$ cmake --build _builds --target install

$ grep INTERFACE_INCLUDE_DIRECTORIES ${HOME}/opt/mdns/share/cmake/mdns/mdnsTargets.cmake || echo FAIL
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"

With this patch:

$ cmake -B _builds -D CMAKE_INSTALL_PREFIX=${HOME}/opt/mdns
$ cmake --build _builds --target install

$ grep INTERFACE_INCLUDE_DIRECTORIES ${HOME}/opt/mdns/share/cmake/mdns/mdnsTargets.cmake || echo FAIL
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"