0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenCV,OpenGL,Eigenが使えるC++プロジェクトを作るためのCMakeListを作る

Posted at

chatGPTに協力してもらいながら、作ったら意外と簡単。

cmake_minimum_required(VERSION 3.10)

# プロジェクト名を変数として定義
set(PROJECT_NAME MyOpenCV_Eigen_OpenGL_Project)

project(${PROJECT_NAME})

# C++17を使用する
set(CMAKE_CXX_STANDARD 17)

# OpenCVのパッケージを見つける
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

# Eigenのパッケージを見つける
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
include_directories(${EIGEN3_INCLUDE_DIR})

# OpenGLのパッケージを見つける
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})

# GLFWのパッケージを見つける
find_package(glfw3 REQUIRED)
include_directories(${GLFW_INCLUDE_DIRS})

# ImGuiのソースコードを追加
set(IMGUI_DIR "${CMAKE_SOURCE_DIR}/external/imgui")
file(GLOB_RECURSE IMGUI_SOURCES "${IMGUI_DIR}/*.cpp")
file(GLOB_RECURSE IMGUI_HEADERS "${IMGUI_DIR}/*.h")

# ソースファイルを自動的に追加する
file(GLOB_RECURSE SOURCES "src/*.cpp")
file(GLOB_RECURSE HEADERS "src/*.h")

# ヘッダーファイルのインクルードパスを追加
include_directories(${IMGUI_DIR})

# 実行可能ファイルを作成
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}
               ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp 
               ${IMGUI_DIR}/imgui_widgets.cpp ${IMGUI_DIR}/imgui_tables.cpp 
               ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp 
               ${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp)

# ImGuiのソースコードとヘッダーファイルをグループ化
source_group(TREE "${IMGUI_DIR}" PREFIX "imgui" FILES ${IMGUI_SOURCES})
source_group(TREE "${IMGUI_DIR}" PREFIX "imgui" FILES ${IMGUI_HEADERS})

# ソースコードとヘッダーファイルをグループ化
source_group(TREE "${CMAKE_SOURCE_DIR}/src" PREFIX "src" FILES ${SOURCES})
source_group(TREE "${CMAKE_SOURCE_DIR}/src" PREFIX "src" FILES ${HEADERS})

# リンカオプションを設定
target_link_libraries(${PROJECT_NAME}
    ${OpenCV_LIBS}
    ${OPENGL_LIBRARIES}
    glfw
)

# デバッグビルドのために、コンパイラオプションを追加する場合
# set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?