0
votes

Hi I'm new to CMake and all that stuff.

I try to set up an Project with imgui and OpenGL. My Project builds and works fine, but CLion shows all the GLFW examples and GoogleTests as Target.

enter image description here

I clone and build GLFW with these 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
)

Is there an easy way I can remove this targets?

1

1 Answers

0
votes

Sorry, it is known problem CPP-14899 CLion creates "Application" run configurations for gtest targets when gtest 1.8.1 is used

But it has work around:

Please,

  • set the registry (Help | Find Action... | Actions | Registry...) value cidr.test.framework.targetTypeFromHeaderDetectionEnable to true ([v])
  • close project
  • remove .idea folder
  • open project