Управляйте целями с помощью CMake и CLion - PullRequest
0 голосов
/ 24 марта 2020

Привет, я новичок в CMake и во всем этом.

Я пытаюсь настроить проект с im gui и OpenGL. Мой проект строится и работает нормально, но CLion показывает все примеры GLFW и GoogleTests в качестве цели.

enter image description here

Я клонирую и собираю GLFW с этими CMakeList:

CMakeLists.txt

find_package(OpenGL REQUIRED)

#download and build glew
configure_file(CMakeLists.txt.in glfw-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/glfw-download )
if(result)
  message(FATAL_ERROR "CMake step for glfw failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/glfw-download )
if(result)
  message(FATAL_ERROR "Build step for glfw failed: ${result}")
endif()

#add dir
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/glfw-src
                 ${CMAKE_CURRENT_BINARY_DIR}/glfw-build
                 EXCLUDE_FROM_ALL)


add_executable(gbadbgCLI main.cpp)

#imgui
target_sources(gbadbgCLI PRIVATE imgui/imgui.cpp imgui/imgui_draw.cpp imgui/imgui_impl_opengl2.cpp imgui/imgui_impl_glfw.cpp imgui/imgui_widgets.cpp imgui/imgui_demo.cpp)

# link packages
target_link_libraries(gbadbgCLI gbadbgLIB)
target_link_libraries(gbadbgCLI OpenGL::GL)
target_link_libraries(gbadbgCLI glfw)

CMakeLists.txt.in

cmake_minimum_required(VERSION 3.10)

project(glfw-download NONE)

include(ExternalProject)

ExternalProject_Add(glfw PREFIX glfw
    GIT_REPOSITORY https://github.com/glfw/glfw.git
    GIT_TAG 3.3.2

    SOURCE_DIR        "${CMAKE_CURRENT_BINARY_DIR}/glfw-src"
    BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/glfw-build"

    UPDATE_COMMAND ""

    CMAKE_ARGS
        "-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>"
        "-DCMAKE_BUILD_TYPE=Release"
        "-DGLFW_BUILD_EXAMPLES=OFF"
        "-DGLFW_BUILD_TESTS=OFF"
        "-DGLFW_BUILD_DOCS=OFF"

    CMAKE_CACHE_ARGS
        "-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}"
        "-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}"

    LOG_DOWNLOAD 1 LOG_UPDATE 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1
)

Есть ли простой способ удалить эту цель?

1 Ответ

0 голосов
/ 25 марта 2020

Извините, это известная проблема CPP -14899 CLion создает конфигурации запуска «Application» для целей gtest при использовании gtest 1.8.1

Но у него есть обходной путь:

Пожалуйста,

  • установите значение реестра (Help | Find Action... | Actions | Registry...) cidr.test.framework.targetTypeFromHeaderDetectionEnable в true ([v])
  • закрыть проект
  • удалить .idea папку
  • открыть проект
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...