diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c4fc3a..ec4e2aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,4 +39,5 @@ endif() add_subdirectory(third_party) add_subdirectory(engine) -add_subdirectory(testbed) \ No newline at end of file +add_subdirectory(testbed) +add_subdirectory(examples) \ No newline at end of file diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index bd3fd63..fc8e0d4 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -5,14 +5,21 @@ add_library(${ENGINE_NAME} STATIC) file(GLOB_RECURSE SOURCES src/*.cpp) file(GLOB_RECURSE HEADERS include/*.hpp) -target_sources(${ENGINE_NAME} PRIVATE - ${SOURCES} - # ${HEADERS} +target_sources(${ENGINE_NAME} PRIVATE + ${SOURCES} +) + +target_include_directories(${ENGINE_NAME} PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/src" ) target_include_directories(${ENGINE_NAME} PUBLIC - "${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_SOURCE_DIR}/include" - "${CMAKE_SOURCE_DIR}/third_party/imgui" - "${CMAKE_SOURCE_DIR}/third_party/imgui/backends" +) + +target_link_libraries(${ENGINE_NAME} PUBLIC + vulkan + glfw + glm + imgui ) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..725b859 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,7 @@ +file(GLOB EXAMPLE_DIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) + +foreach(dir ${EXAMPLE_DIRS}) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${dir} AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt) + add_subdirectory(${dir}) + endif() +endforeach() diff --git a/examples/triangle/CMakeLists.txt b/examples/triangle/CMakeLists.txt new file mode 100644 index 0000000..7072e3e --- /dev/null +++ b/examples/triangle/CMakeLists.txt @@ -0,0 +1,3 @@ +add_executable(triangle main.cpp) + +target_link_libraries(triangle PRIVATE ${PROJECT_NAME}) diff --git a/examples/triangle/main.cpp b/examples/triangle/main.cpp new file mode 100644 index 0000000..f629c69 --- /dev/null +++ b/examples/triangle/main.cpp @@ -0,0 +1,9 @@ +#include + +int main() { + sophia::Application app{{.width = 800, .height = 600, .name = "Triangle"}}; + + app.run(); + + return EXIT_SUCCESS; +} diff --git a/testbed/main.cpp b/testbed/main.cpp index 5c943ed..d544a4d 100644 --- a/testbed/main.cpp +++ b/testbed/main.cpp @@ -1,11 +1,15 @@ #include +#include #include -int main(int argc, const char **argv) -{ +int main(int argc, const char** argv) { (void)argc; (void)argv; std::cout << __FILE__ << "::" << __LINE__ << '\n'; + sophia::Application app{{.width = 750, .height = 1000, .name = "Testbed"}}; + + app.run(); + return EXIT_SUCCESS; }