From 244b00fa5c1803d977224c21387b6b1397a08e1a Mon Sep 17 00:00:00 2001 From: m-aXimilian <56168660+m-aXimilian@users.noreply.github.com> Date: Sat, 11 Oct 2025 12:57:41 +0200 Subject: [PATCH] start examples (#16) --- CMakeLists.txt | 27 +++++---------------------- CMakePresets.json | 3 ++- doc/versions.md | 1 + examples/CMakeLists.txt | 1 + examples/simple/CMakeLists.txt | 22 ++++++++++++++++++++++ {src => examples/simple}/main.cpp | 0 6 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 examples/CMakeLists.txt create mode 100644 examples/simple/CMakeLists.txt rename {src => examples/simple}/main.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e235abf..11a9764 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.23) -project(pixelarium VERSION 0.0.7) +project(pixelarium VERSION 0.0.8) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 23) @@ -22,6 +22,7 @@ message(STATUS "SPDLOG:\t" ${spdlog_DIR}) option(PIXELARIUM_BUILD_UNITTESTS "Generate Unittests" ON) option(PIXELARIUM_BUILD_DOCS "Generate Documentation" ON) option(PIXELARIUM_BUILD_DOCS_ONLY "Build only Documentation (no compilatoin)" OFF) +option(PIXELARIUM_BUILD_EXAMPLES "Build example projects" ON) #==================== if(PIXELARIUM_BUILD_DOCS OR PIXELARIUM_BUILD_DOCS_ONLY) @@ -77,9 +78,6 @@ add_subdirectory(${spdlog_DIR}) add_subdirectory(${glfw3_module_DIR}) add_subdirectory(lib) -set(SRC - src/main.cpp) - #==================== # needed for the spdlogger implementation # this is not nice, but it won't work when, e.g. doing it from lower level cmake files @@ -87,24 +85,9 @@ add_compile_options("$<$:/utf-8>") add_compile_options("$<$:/utf-8>") #==================== -add_executable(${PROJECT_NAME} ${SRC}) - -target_link_libraries(${PROJECT_NAME} - PRIVATE pixelariumimagelib - PRIVATE pixelariumrenderlib - PRIVATE pixelariumutilslib - PRIVATE pixelariumresourcelib - PUBLIC pixelariumapplicationlib) - -target_include_directories(${PROJECT_NAME} - PUBLIC ${PROJECT_SOURCE_DIR}/src - PUBLIC ${PROJECT_SOURCE_DIR}/lib - PUBLIC ${PROJECT_SOURCE_DIR}/lib/imaging - PUBLIC ${PROJECT_SOURCE_DIR}/lib/app - PUBLIC ${spdlog_DIR}/include - PUBLIC ${LIBCZI_INCLUDE_DIR} - PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) - +if(PIXELARIUM_BUILD_EXAMPLES) + add_subdirectory(examples) +endif() if(PIXELARIUM_BUILD_UNITTESTS) include(CTest) diff --git a/CMakePresets.json b/CMakePresets.json index 853eaca..b18b986 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -17,7 +17,8 @@ "CMAKE_VERBOSE_MAKEFILE": "ON", "PIXELARIUM_BUILD_UNITTESTS": "ON", "PIXELARIUM_BUILD_DOCS": "OFF", - "PIXELARIUM_BUILD_DOCS_ONLY": "OFF" + "PIXELARIUM_BUILD_DOCS_ONLY": "OFF", + "PIXELARIUM_BUILD_EXAMPLES": "ON" } }, { diff --git a/doc/versions.md b/doc/versions.md index e83e130..14477f5 100644 --- a/doc/versions.md +++ b/doc/versions.md @@ -2,6 +2,7 @@ | Version | Description | |:-------:|:------------------------------------------------------------------------------------------------------------| +| 0.0.8 | Init example projects | | 0.0.7 | Refactors image gallery logic from `DefaultApp` into a separate module | | 0.0.6 | Added documentation-only option `PIXELARIUM_BUILD_DOCS_ONLY`, libCZI upgrade to main branch CI improvements | | 0.0.5 | Compile for C++23 and code style adaptions | diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..c01ac80 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(simple) diff --git a/examples/simple/CMakeLists.txt b/examples/simple/CMakeLists.txt new file mode 100644 index 0000000..03d8c45 --- /dev/null +++ b/examples/simple/CMakeLists.txt @@ -0,0 +1,22 @@ +set(SRC + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) + +set(SIMPLE_NAME "${PROJECT_NAME}_SIMPLE") + +add_executable(${SIMPLE_NAME} ${SRC}) + +target_link_libraries(${SIMPLE_NAME} + PRIVATE pixelariumimagelib + PRIVATE pixelariumrenderlib + PRIVATE pixelariumutilslib + PRIVATE pixelariumresourcelib + PRIVATE pixelariumapplicationlib) + +target_include_directories(${SIMPLE_NAME} + PRIVATE ${PROJECT_SOURCE_DIR}/src + PRIVATE ${PROJECT_SOURCE_DIR}/lib + PRIVATE ${PROJECT_SOURCE_DIR}/lib/imaging + PRIVATE ${PROJECT_SOURCE_DIR}/lib/app + PRIVATE ${spdlog_DIR}/include + PRIVATE ${LIBCZI_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/main.cpp b/examples/simple/main.cpp similarity index 100% rename from src/main.cpp rename to examples/simple/main.cpp