#74

broken zycore_INCLUDE_DIR in zycore-config.cmake

Openmilahuopened 2y ago

on nixos (zycore.nix) both PACKAGE_PREFIX_DIR and CMAKE_INSTALL_INCLUDEDIR are absolute paths so the resulting zycore-config.cmake looks something like

get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
# ...
set_and_check(zycore_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}//nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/include")
set_and_check(zycore_LIB_DIR "${PACKAGE_PREFIX_DIR}//nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/lib")

zycore_INCLUDE_DIR evals to something like /nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0//nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/include

example: zydis build fails with

CMake Error at /nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/lib/cmake/zycore/zycore-config.cmake:13 (message):
  File or directory
  /nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0//nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/include
  referenced by variable zycore_INCLUDE_DIR does not exist !
Call Stack (most recent call first):
  /nix/store/ny0cljlv9dnbf6m123mlcr0n2v1bp08q-zycore-c-1.5.0/lib/cmake/zycore/zycore-config.cmake:38 (set_and_check)
  CMakeLists.txt:109 (find_package)
  CMakeLists.txt:141 (locate_zycore)

https://github.com/zyantific/zycore-c/blob/419cde9e9246370935a351fb3cc80b02fbc6abd6/cmake/zycore-config.cmake.in#L14-L15

https://github.com/zyantific/zycore-c/blob/419cde9e9246370935a351fb3cc80b02fbc6abd6/CMakeLists.txt#L200-L203

possible solutions: remove ${PACKAGE_PREFIX_DIR}/ use cmake_path(APPEND ...) to join paths

Activity

1
athre0z2y ago

Ah yeah -- I forgot to fix this in the last release. I maintain the nixpkgs package for it and worked around it there via:

https://github.com/NixOS/nixpkgs/blob/fa12935a32af71ab3a8b4ff60ab3c37490eea336/pkgs/development/libraries/zydis/default.nix#L27-L30

We should really fix this here, though.