-
Notifications
You must be signed in to change notification settings - Fork 110
Open
Description
Hi, I am building libOTe and running into a header-inclusion issue. The frontend unit tests run fine so I'm wondering if it's something with my project's cmake
configuration.
I install with:
# run from ~/repo/build folder
$ python3 build.py --par=4 --boost --sodium --all --install=../libOTe-install -DENABLE_SSE=ON
Within our CMakeLists
, I include libOTe with
find_package(libOTe REQUIRED HINTS
libOTe-install/lib/cmake/libOTe/
libOTe-install/lib64/cmake/libOTe/ )
list(APPEND LINK_LIBRARIES "oc::libOTe")
Running cmake
gives no issues, but trying to compile an example which uses Silent VOLE, I see
/users/elibaum/repo/libOTe-install/include/libOTe/Base/MasnyRindalKyber.h:19:10: fatal error: KyberOT/KyberOT.h: No such file or directory
19 | #include <KyberOT/KyberOT.h>
| ^~~~~~~~~~~~~~~~~~~
Configuring cmake with -DCMAKE_VERBOSE_MAKEFILE=ON
, I see
expand code block below
make test_libote /usr/bin/cmake -S/users/elibaum/repo -B/users/elibaum/repo/build --check-build-system CMakeFiles/Makefile.cmake 0 make -f CMakeFiles/Makefile2 test_libote make[1]: Entering directory '/users/elibaum/repo/build' /usr/bin/cmake -S/users/elibaum/repo -B/users/elibaum/repo/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /users/elibaum/repo/build/CMakeFiles 1 make -f CMakeFiles/Makefile2 CMakeFiles/test_libote.dir/all make[2]: Entering directory '/users/elibaum/repo/build' make -f CMakeFiles/test_libote.dir/build.make CMakeFiles/test_libote.dir/depend make[3]: Entering directory '/users/elibaum/repo/build' cd /users/elibaum/repo/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /users/elibaum/repo /users/elibaum/repo /users/elibaum/repo/build /users/elibaum/repo/build /users/elibaum/repo/build/CMakeFiles/test_libote.dir/DependInfo.cmake --color= make[3]: Leaving directory '/users/elibaum/repo/build' make -f CMakeFiles/test_libote.dir/build.make CMakeFiles/test_libote.dir/build make[3]: Entering directory '/users/elibaum/repo/build' [ 0%] Building CXX object CMakeFiles/test_libote.dir/tests/test_libote.cpp.o /usr/bin/c++ -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -DDEFAULT_BITWIDTH=32 -isystem /usr/lib/x86_64-linux-gnu/openmpi/include -isystem /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -isystem /users/elibaum/repo/libOTe-install/include -O3 -g -pthread -D PROTOCOL_NUM=2 -mbmi -march=native -maes -msse2 -msse3 -mssse3 -msse4.1 -mpclmul -mavx2 -Wno-error=switch -std=gnu++20 -MD -MT CMakeFiles/test_libote.dir/tests/test_libote.cpp.o -MF CMakeFiles/test_libote.dir/tests/test_libote.cpp.o.d -o CMakeFiles/test_libote.dir/tests/test_libote.cpp.o -c /users/elibaum/repo/tests/test_libote.cpp In file included from /users/elibaum/repo/libOTe-install/include/libOTe/Base/BaseOT.h:13, from /users/elibaum/repo/libOTe-install/include/libOTe/Vole/Silent/SilentVoleReceiver.h:23, from /users/elibaum/repo/tests/test_libote.cpp:18: /users/elibaum/repo/libOTe-install/include/libOTe/Base/MasnyRindalKyber.h:19:10: fatal error: KyberOT/KyberOT.h: No such file or directory 19 | #include | ^~~~~~~~~~~~~~~~~~~ compilation terminated. make[3]: *** [CMakeFiles/test_libote.dir/build.make:79: CMakeFiles/test_libote.dir/tests/test_libote.cpp.o] Error 1 make[3]: Leaving directory '/users/elibaum/repo/build' make[2]: *** [CMakeFiles/Makefile2:2037: CMakeFiles/test_libote.dir/all] Error 2 make[2]: Leaving directory '/users/elibaum/repo/build' make[1]: *** [CMakeFiles/Makefile2:2044: CMakeFiles/test_libote.dir/rule] Error 2 make[1]: Leaving directory '/users/elibaum/repo/build' make: *** [Makefile:1024: test_libote] Error 2
Based on the compiler command, I think we're searching for headers in ~/repo/libOTe-install
. However,
# from within ~/repo
$ find . -iname "*kyber*.h"
./libOTe/libOTe/Base/MasnyRindalKyber.h
./libOTe/thirdparty/KyberOT/KyberOT.h
./libOTe-install/include/libOTe/Base/MasnyRindalKyber.h
So it looks like the KyberOT
header files weren't installed (they're still in libOTe/
, which is where I cloned the repo).
Should these headers be getting installed somewhere else, or do I need cmake
to look for them elsewhere?
Metadata
Metadata
Assignees
Labels
No labels