Improve Pipeline & Misc Improvements (#12)
* split pipeline * add dedicated doc build step * parallel builds * fix permissions * rm push trigger * mv gcc ubuntu * add windows build * always build the docs * doc alignment * checkout recursive * depend on builds for documentation * set standard via cmake * update libCZI to main * pretty_function win32 * version history update * disable windows release build missing dependencies for doc generation trigger ci on push to main adapt doc-gen job require only doxygen
This commit is contained in:
committed by
Maximilian Kueffner
parent
fec5c08aaa
commit
b1923a490c
+43
-32
@@ -1,10 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.23)
|
||||
|
||||
project(pixelarium VERSION 0.0.5)
|
||||
project(pixelarium VERSION 0.0.6)
|
||||
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
set(CXX_STANDARD 23)
|
||||
set(CXX_STANDARD_REQUIRED true)
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
||||
|
||||
# setting global module directories
|
||||
set(glfw3_module_DIR ${PROJECT_SOURCE_DIR}/modules/glfw)
|
||||
@@ -13,28 +13,61 @@ set(imgui_DIR ${PROJECT_SOURCE_DIR}/modules/imgui)
|
||||
set(pfd_DIR ${PROJECT_SOURCE_DIR}/modules/portable-file-dialogs)
|
||||
set(spdlog_DIR ${PROJECT_SOURCE_DIR}/modules/spdlog)
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
message(STATUS "GLFW:\t" ${glfw3_module_DIR})
|
||||
message(STATUS "PFD:\t\t" ${pfd_DIR})
|
||||
message(STATUS "SPDLOG:\t" ${spdlog_DIR})
|
||||
|
||||
#====================
|
||||
# Options
|
||||
option(PIXELARIUM_BUILD_UNITTESTS "Generate Unittests" ON)
|
||||
option(PIXELARIUM_BUILD_DOCS "Generate Documentation" ON)
|
||||
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)
|
||||
#====================
|
||||
|
||||
if(PIXELARIUM_BUILD_DOCS OR PIXELARIUM_BUILD_DOCS_ONLY)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/awesomeDoxygen.cmake)
|
||||
set(MAINPAGE_FILE "doc/index.md")
|
||||
find_package(Doxygen)
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
set(DOXYGEN_IN ${PROJECT_SOURCE_DIR}/doc/Doxyfile.in)
|
||||
set(DOXYGEN_OUT ${CMAKE_BINARY_DIR}/Doxyfile)
|
||||
|
||||
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
||||
message(STATUS "Building Docs")
|
||||
|
||||
add_custom_target(doxygen ALL
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Generating Docs")
|
||||
|
||||
else (DOXYGEN_FOUND)
|
||||
message(FATAL_ERROR "Doxygen need to be installed to generate the doxygen documentation")
|
||||
endif (DOXYGEN_FOUND)
|
||||
|
||||
if(PIXELARIUM_BUILD_DOCS_ONLY)
|
||||
message(STATUS "Documentation Generated successful")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
message(STATUS "PIXELARIUM_BUILD_DOCS_ONLY was set to ON. Thus, no compilation will follow.")
|
||||
message(STATUS "If compilation shall occur, set '-DPIXELARIUM_BUILD_DOCS_ONLY=OFF'.")
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
set(CMAKE_CXX_FLAGS "/std:c++23 /Zi /EHsc")
|
||||
set(CMAKE_CXX_FLAGS "/Zi /EHsc")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g --std=c++23")
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g")
|
||||
endif()
|
||||
endif()
|
||||
if(UNIX)
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g --std=c++23")
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g")
|
||||
endif()
|
||||
|
||||
string(TOUPPER "${CMAKE_PROJECT_NAME}" PIXELARIUM_TITLE)
|
||||
@@ -78,25 +111,3 @@ if(PIXELARIUM_BUILD_UNITTESTS)
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
if(PIXELARIUM_BUILD_DOCS)
|
||||
include(${PROJECT_SOURCE_DIR}/cmake/awesomeDoxygen.cmake)
|
||||
set(MAINPAGE_FILE "doc/index.md")
|
||||
find_package(Doxygen)
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
set(DOXYGEN_IN ${PROJECT_SOURCE_DIR}/doc/Doxyfile.in)
|
||||
set(DOXYGEN_OUT ${CMAKE_BINARY_DIR}/Doxyfile)
|
||||
|
||||
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
||||
message(STATUS "Building Docs")
|
||||
|
||||
add_custom_target(doxygen ALL
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Generating Docs")
|
||||
|
||||
else (DOXYGEN_FOUND)
|
||||
message(FATAL_ERROR "Doxygen need to be installed to generate the doxygen documentation")
|
||||
endif (DOXYGEN_FOUND)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user