Skip to content

Instantly share code, notes, and snippets.

@kalwalt
Last active September 23, 2023 23:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kalwalt/c8a62b906c67a4d5568089584b61119c to your computer and use it in GitHub Desktop.
Save kalwalt/c8a62b906c67a4d5568089584b61119c to your computer and use it in GitHub Desktop.
Testing cmake config file for WebARKitLIb tests, it let you succesfully compile the tests with opencv-em
cmake_minimum_required(VERSION 3.24)
project(Webarkit_tests)
# GoogleTest requires at least C++14
set(CMAKE_CXX_STANDARD 14)
# Fetch googletest v1.13.0 commit b796f7d44681514f58a683a3a71ff17c94edb0c1
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/b796f7d44681514f58a683a3a71ff17c94edb0c1.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
enable_testing()
add_subdirectory(../WebARKit ../WebARKit/build)
add_executable(
webarkit_test
webarkit_test.cc
)
get_filename_component(PARENT_DIR ../ ABSOLUTE)
get_filename_component(TEST_DIR ./ ABSOLUTE)
target_include_directories(webarkit_test PRIVATE "${PARENT_DIR}/WebARKit/include")
target_include_directories(webarkit_test PRIVATE "${PARENT_DIR}/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/include")
target_include_directories(webarkit_test PRIVATE
"${TEST_DIR}/build_opencv"
"${TEST_DIR}/build_opencv/libs/opencv/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/calib3d/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/core/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/features2d/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/flann/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/imgproc/include"
"${TEST_DIR}/build_opencv/libs/opencv/modules/video/include"
"${TEST_DIR}/build_opencv/libs/opencv_contrib/modules/xfeatures2d/include"
)
set(webarkit_test
${PARENT_DIR}/WebARKit/WebARKitManager.cpp
)
# The order of the libs make the difference!
target_link_libraries(
webarkit_test
WebARKitLib
"${TEST_DIR}/build_opencv/lib/libopencv_calib3d.a"
"${TEST_DIR}/build_opencv/lib/libopencv_features2d.a"
"${TEST_DIR}/build_opencv/lib/libopencv_flann.a"
"${TEST_DIR}/build_opencv/lib/libopencv_video.a"
"${TEST_DIR}/build_opencv/lib/libopencv_xfeatures2d.a"
"${TEST_DIR}/build_opencv/lib/libopencv_imgproc.a"
#"${TEST_DIR}/build_opencv/lib/libopencv_video.a"
#"${TEST_DIR}/build_opencv/3rdparty/lib/libzlib.a"
"${TEST_DIR}/build_opencv/lib/libopencv_core.a"
"${TEST_DIR}/build_opencv/3rdparty/lib/libzlib.a"
#"${TEST_DIR}/build_opencv/lib/libopencv_xfeatures2d.a"
GTest::gtest_main
)
include(GoogleTest)
gtest_discover_tests(webarkit_test)
@kalwalt
Copy link
Author

kalwalt commented Sep 23, 2023

It's needed to replace the CMakeLists.txt inside WebARKitLib/test see PR webarkit/WebARKitLib#19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment