【问题标题】:Manage targets with CMake and CLion使用 CMake 和 CLion 管理目标
【发布时间】:2020-07-04 20:53:56
【问题描述】:

您好,我是 CMake 的新手。

我尝试使用 imgui 和 OpenGL 建立一个项目。 我的项目构建并运行良好,但 CLion 将所有 GLFW 示例和 GoogleTests 显示为目标。

我使用这些 CMakeList 克隆和构建 GLFW:

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
)

有没有一种简单的方法可以删除这些目标?

【问题讨论】:

    标签: build cmake clion


    【解决方案1】:

    抱歉,已知问题 CPP-14899 CLion creates "Application" run configurations for gtest targets when gtest 1.8.1 is used

    但它有解决方法:

    • 将注册表 (Help | Find Action... | Actions | Registry...) 值 cidr.test.framework.targetTypeFromHeaderDetectionEnable 设置为 true ([v])
    • 关闭项目
    • 删除.idea文件夹
    • 打开项目

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 2016-06-19
      • 2023-03-29
      • 2019-02-13
      • 2021-02-09
      • 2015-08-02
      • 2021-09-15
      • 2018-03-17
      • 1970-01-01
      相关资源
      最近更新 更多