Skip to content
Snippets Groups Projects
Commit b7ec2c9b authored by Armin Co's avatar Armin Co
Browse files

Rework of the build process

parent 3641f27d
No related branches found
No related tags found
No related merge requests found
add_executable( QPongGame add_executable( QPongGame
QPongApp.cpp
GameLayer.cpp GameLayer.cpp
Log.cpp Log.cpp
Player.cpp Player.cpp
MainMenuLayer.cpp MainMenuLayer.cpp
QPongApp.cpp
Window.cpp Window.cpp
) )
target_include_directories( QPong PUBLIC target_compile_options( QPongGame
. PRIVATE
.. ${basic_flags}
../libs
../libs/imgui/examples/libs/gl3w
) )
target_link_libraries( QPongGame PUBLIC target_link_libraries( QPongGame
PRIVATE
GuiCore GuiCore
QPong QPong
ImGuiSrc
)
target_include_directories( QPongGame
PRIVATE
..
) )
add_custom_command(TARGET QPongGame add_custom_command(TARGET QPongGame
......
...@@ -3,7 +3,10 @@ project(QPong VERSION 0.0.1 LANGUAGES C CXX) ...@@ -3,7 +3,10 @@ project(QPong VERSION 0.0.1 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
set(CMAKE_BUILD_TYPE Release) set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS "-Ofast")
list(APPEND basic_flags "-O3" "-Wextra" "-Wall" "-Wshadow" "-Wold-style-cast")
list(APPEND basic_flags "-Wno-unused-variable")
list(APPEND pedantic_flags "-pedantic" "-Wpedantic")
option(LOG_DEBUG_INFO "Enable logging t console" OFF) option(LOG_DEBUG_INFO "Enable logging t console" OFF)
if(LOG_DEBUG_INFO) if(LOG_DEBUG_INFO)
...@@ -13,6 +16,12 @@ endif(LOG_DEBUG_INFO) ...@@ -13,6 +16,12 @@ endif(LOG_DEBUG_INFO)
# Check for PkgConfig # Check for PkgConfig
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
# Libraries the project depends on:
add_subdirectory(libs/spdlog)
# ImGuiSrc
add_subdirectory(ImGuiSrc)
# GUI/Window # GUI/Window
add_subdirectory(GuiCore) add_subdirectory(GuiCore)
...@@ -22,5 +31,3 @@ add_subdirectory(QPong) ...@@ -22,5 +31,3 @@ add_subdirectory(QPong)
# QPong App sources # QPong App sources
add_subdirectory(App) add_subdirectory(App)
# Libraries the project depends on:
add_subdirectory(libs/spdlog)
find_package( Freetype REQUIRED) find_package( Freetype REQUIRED)
# GuiCore library add_library( ImGuiQPong
add_library(GuiCore Shader.cpp
Application.cpp
Input.cpp
Layer.cpp
LayerStack.cpp
Log.cpp
Timer.cpp
Timestep.cpp
Glyphs.cpp Glyphs.cpp
ImGuiLayer.cpp
)
target_compile_options( ImGuiQPong
PRIVATE
${basic_flags}
) )
target_include_directories( GuiCore PUBLIC target_include_directories( ImGuiQPong
SYSTEM PRIVATE
../libs
../libs/imgui/examples/libs/gl3w
../libs/spdlog/include/ ../libs/spdlog/include/
${FREETYPE_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS}
) )
target_link_libraries( GuiCore target_link_libraries( ImGuiQPong
spdlog PRIVATE
ImGuiSrc
${FREETYPE_LIBRARIES} ${FREETYPE_LIBRARIES}
) )
add_compile_definitions(IMGUI_IMPL_OPENGL_LOADER_GL3W)
# ImGui is a dependency of GuiCore # GuiCore library
add_library( ImGui add_library(GuiCore
Shader.cpp Application.cpp
ImGuiLayer.cpp Input.cpp
../libs/imgui/imgui.cpp Layer.cpp
../libs/imgui/imgui_draw.cpp LayerStack.cpp
../libs/imgui/imgui_widgets.cpp Log.cpp
../libs/imgui/imgui_tables.cpp Timer.cpp
../libs/imgui/backends/imgui_impl_glfw.cpp Timestep.cpp
../libs/imgui/backends/imgui_impl_opengl3.cpp
../libs/imgui/examples/libs/gl3w/GL/gl3w.c
) )
target_include_directories( ImGui PUBLIC target_compile_options(GuiCore
../libs PRIVATE
../libs/imgui # for glfw ${basic_flags}
../libs/imgui/backends
../libs/imgui/examples/libs/gl3w
../libs/spdlog/include
) )
target_include_directories( GuiCore
SYSTEM PRIVATE
../libs/spdlog/include/
)
target_link_libraries( GuiCore target_link_libraries( GuiCore
ImGui ImGuiQPong
spdlog
) )
# Check for GLFW3 and link # Check for GLFW3 and link
pkg_check_modules(GLFW glfw3) pkg_check_modules(GLFW glfw3)
target_include_directories(GuiCore PUBLIC ${GLFW_INCLUDE_DIRS}) target_include_directories(GuiCore PRIVATE ${GLFW_INCLUDE_DIRS})
target_link_libraries(GuiCore ${GLFW_LIBRARIES}) target_link_libraries(GuiCore ${GLFW_LIBRARIES})
......
add_compile_definitions(IMGUI_IMPL_OPENGL_LOADER_GL3W)
add_library( ImGuiSrc
../libs/imgui/imgui.cpp
../libs/imgui/imgui_draw.cpp
../libs/imgui/imgui_widgets.cpp
../libs/imgui/imgui_tables.cpp
../libs/imgui/backends/imgui_impl_glfw.cpp
../libs/imgui/backends/imgui_impl_opengl3.cpp
../libs/imgui/examples/libs/gl3w/GL/gl3w.c
)
target_include_directories( ImGuiSrc
SYSTEM PUBLIC
../libs/imgui # for glfw
../libs/imgui/backends
../libs/imgui/examples/libs/gl3w
)
...@@ -5,12 +5,28 @@ add_library(QPong ...@@ -5,12 +5,28 @@ add_library(QPong
Utils.cpp Utils.cpp
) )
target_include_directories(QPong PUBLIC target_compile_options(QPong
PRIVATE
${basic_flags}
)
target_include_directories(QPong
PRIVATE
.
.. ..
) )
target_link_libraries( QPong PRIVATE target_link_libraries(QPong
PRIVATE
GuiCore GuiCore
fftw3 fftw3
fftw3_omp fftw3_omp
) )
# target_include_directories( QPong
# PUBLIC
# .
# ..
# ../libs
# ../libs/imgui/examples/libs/gl3w
# )
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment