martinus / robin-hood-hashing

Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20
https://gitter.im/martinus/robin-hood-hashing
MIT License
1.5k stars 142 forks source link

robin_hoodConfig.cmake missing #155

Open jvonachen opened 2 years ago

jvonachen commented 2 years ago

I'm trying to make Vulkan Validation layers and the make required robin hood but after using conan to install it and use it, I was expecting there to be a robin_hoodConfig.cmake or robin_hood-config.cmake. Everything works except the robin hood.

I'm using windows 10, Vulkan 1.3.211.0, cmake 3.10.2

command to make the validation layers:

cmake -A x64 -DVULKAN_HEADERS_INSTALL_DIR=C:\libraries\VulkanSDK\1.3.211.0 -DGLSLANG_INSTALL_DIR=C:\libraries\VulkanSDK\1.3.211.0 -DSPIRV_HEADERS_INSTALL_DIR=C:\libraries\VulkanSDK\1.3.211.0 -DSPIRV_TOOLS_INSTALL_DIR=C:\libraries\VulkanSDK\1.3.211.0 -DROBIN_HOOD_HASHING_INSTALL_DIR=C:\robin-hood-hashing-master ..

output from command:

-- Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.19042.


-- Configuring incomplete, errors occurred! See also "C:/Vulkan-ValidationLayers-master/build/CMakeFiles/CMakeOutput.log".

bebing2 commented 1 year ago

Hi! Did you ever find a fix or workaround for this? I ran into the same exact thing. I'm a bit new to cmake so I am going to see if I can get the syntax correct to disable using robin_hood. I mean I built it and it just generated a single executable "rh." Maybe I'm barking up the wrong tree.

jvonachen commented 1 year ago

Oh yea. It had to do with getting Vulcan to work and the validation layers.

On Sun, Aug 7, 2022 at 5:08 PM John Vonachen @.***> wrote:

That was a long time ago and I don't even remember what my problem was.

On Sun, Aug 7, 2022 at 5:02 PM bebing2 @.***> wrote:

Hi! Did you ever find a fix or workaround for this? I ran into the same exact thing. I'm a bit new to cmake so I am going to see if I can get the syntax correct to disable using robin_hood. I mean I built it and it just generated a single executable "rh." Maybe I'm barking up the wrong tree.

— Reply to this email directly, view it on GitHub https://github.com/martinus/robin-hood-hashing/issues/155#issuecomment-1207502039, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALIFPDVNIWLIVWGGSK6HZTVYA6AVANCNFSM5WUFQATA . You are receiving this because you authored the thread.Message ID: @.***>

jvonachen commented 1 year ago

That was a long time ago and I don't even remember what my problem was.

On Sun, Aug 7, 2022 at 5:02 PM bebing2 @.***> wrote:

Hi! Did you ever find a fix or workaround for this? I ran into the same exact thing. I'm a bit new to cmake so I am going to see if I can get the syntax correct to disable using robin_hood. I mean I built it and it just generated a single executable "rh." Maybe I'm barking up the wrong tree.

— Reply to this email directly, view it on GitHub https://github.com/martinus/robin-hood-hashing/issues/155#issuecomment-1207502039, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALIFPDVNIWLIVWGGSK6HZTVYA6AVANCNFSM5WUFQATA . You are receiving this because you authored the thread.Message ID: @.***>

j-barnak commented 1 year ago

Assuming your project looks similar to this

Project/
├── CMakeLists.txt
├── inc
│   └── Class.hpp
└── src
    ├── Class.cpp
    └── main.cpp

The barely minimal CMakeLists.txt should look like

cmake_minimum_required(VERSION 3.20)
project(project)

add_executable(modern-cpp-nmap ${CMAKE_SOURCE_DIR}/src/main.cpp)

# Optional, but recommended
# This makes it so you need only do something like 
# "inc/Class.hpp" 
# instead of using an absolute path like #include "/home/bob/Stuff/Project/inc/Class.hpp"
# or use awkard relative addressing like #include "../inc/Class.hpp"
target_include_directories(modern-cpp-nmap PUBLIC ${CMAKE_SOURCE_DIR})

find_package(robin_hood REQUIRED)

target_link_libraries(modern-cpp-nmap PRIVATE
    robin_hood::robin_hood
)

and if you want to build it to a build/ directory, you do

cmake -B build .

I personally use

cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 . -GNinja

because this works best with my tools (and I use Ninja instead of Make)