Как настроить CMakeLists.txt для правильного импорта библиотеки AntTweakBar? - PullRequest
0 голосов
/ 25 мая 2019

Я модифицирую приложение C ++, чтобы продемонстрировать внешнюю окклюзию на основе библиотек OpenGL, GLFW и GLAD.Я также хотел бы использовать библиотеку AntTweakBar, но я не знаю, как изменить cMakeLists.txt, чтобы правильно импортировать ее.Я пробовал много разных версий для импорта этой библиотеки, которая в любом случае находится в корне проекта.

Ниже вы можете увидеть мой cmakelists.txt.

cmake_minimum_required(VERSION 2.8)
cmake_policy(VERSION 2.8)

project(LearnOpenGL)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
link_directories(${CMAKE_SOURCE_DIR}/lib)
list(APPEND CMAKE_CXX_FLAGS "-std=c++11")

# find the required packages
find_package(GLM REQUIRED)
message(STATUS "GLM included at ${GLM_INCLUDE_DIR}")
find_package(GLFW3 REQUIRED)
message(STATUS "Found GLFW3 in ${GLFW3_INCLUDE_DIR}")
find_package(ASSIMP REQUIRED)
message(STATUS "Found ASSIMP in ${ASSIMP_INCLUDE_DIR}")

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
find_package(OpenGL REQUIRED)
add_definitions(${OPENGL_DEFINITIONS})
find_package(X11 REQUIRED)
# note that the order is important for setting the libs
# use pkg-config --libs $(pkg-config --print-requires --print-requires-private glfw3) in a terminal to confirm
set(LIBS ${GLFW3_LIBRARY} X11 Xrandr Xinerama Xi Xxf86vm Xcursor GL dl pthread ${ASSIMP_LIBRARY})
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -ldl")

configure_file(configuration/root_directory.h.in configuration/root_directory.h)
include_directories(${CMAKE_BINARY_DIR}/configuration)

# first create relevant static libraries requried for other projects

add_library(GLAD "src/glad.c")
set(LIBS ${LIBS} GLAD)


FIND_PATH(ANT_TWEAK_BAR_INCLUDE_PATH AntTweakBar.h
        PATHS
        ${CMAKE_BINARY_DIR}/AntTweakBar/include)

FIND_LIBRARY( ANT_TWEAK_BAR_LIBRARY AntTweakBar
        PATHS
        ${CMAKE_BINARY_DIR}/AntTweakBar/lib
        )

#reate a project file
file(GLOB SOURCE
        "src/*.h"
        "src/*.cpp"
        "src/*.vs"
        "src/*.fs"
        "src/*.gs"
        )

set(NAME "SSAO")
add_executable(${NAME} ${SOURCE})
target_link_libraries(${NAME} ${LIBS} ${ANT_TWEAK_BAR_LIBRARY})

set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/")
include_directories(${CMAKE_SOURCE_DIR}/includes)
include_directories(${ANT_TWEAK_BAR_INCLUDE_PATH})

1 Ответ

0 голосов
/ 25 мая 2019

Это пример того, как я импортирую статические библиотеки googletest 'libgtest.a' и 'libgmock.a' в проект, используя cmake в качестве генератора конфигурации сборки. Для разделяемых библиотек вам нужно заменить STATIC на SHARED в add_library.

cmake_minimum_required(VERSION 2.8)
project(gtest_sample1)

include_directories(../googletest/include)
include_directories(../googlemock/include)

add_library(gtest STATIC IMPORTED)
set_property(TARGET gtest PROPERTY IMPORTED_LOCATION /home/mschmid/projects/googletest-master/gtest/libgtest.a)
add_library(gmock STATIC IMPORTED)
set_property(TARGET gmock PROPERTY IMPORTED_LOCATION /home/mschmid/projects/googletest-master/gmock/libgmock.a)

add_executable(gtest_sample1 main.cpp)
target_link_libraries(gtest_sample1 gtest gmock pthread)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...