Index: LICENSE.md
===================================================================
--- /dev/null
+++ LICENSE.md
@@ -0,0 +1,104 @@
+# 0 A.D. Licensing Details
+
+0 A.D. and the Pyrogenesis engine are released as free and open source: you can freely use, copy, modify and
+distribute the game's source code and data files, as long as you include
+attribution to Wildfire Games and let anyone freely modify and distribute any
+of your own modifications to the game's files.
+
+The distribution includes several different types of files, and a number of
+third-party components. The details are described here, based on the directory
+structure. For any file, see the longest path name below which is a prefix of
+the file's path.
+
+If you have a question about, or can provide any information on missing or wrong licensing details,
+please inform Wildfire Games at webmaster at wildfiregames dot com.
+
+## Other Licenses based on the Directory Structure
+
+- binaries/data/
+ - GPL version 2 (or later) - see license_gpl-2.0.txt
+
+- binaries/data/mods/*/art
+- binaries/data/mods/*/audio
+ - Creative Commons Attribution-Share Alike 3.0 - see
+ http://creativecommons.org/licenses/by-sa/3.0/
+ and also see LICENSE.txt within those directories
+
+- binaries/data/mods/*/maps/
+ - see LICENSE.txt within those directories
+
+- binaries/data/mods/public/shaders/glsl/fxaa.fs
+ - BSD
+
+- binaries/data/mods/public/shaders/glsl/cas.fs
+ - MIT
+
+- binaries/system/
+ - Various (unspecified)
+
+- binaries/system/dbghelp.dll
+ - Proprietary - see license_dbghelp.txt for restrictions you must agree to
+ before distributing this particular file
+
+- build/
+ - Various (unspecified)
+
+- build/arclint/
+ - GPL version 2 (or later) - see license_gpl-2.0.txt
+
+- build/arclint/pyrolint/
+ - Apache version 2 - see license_apache2.txt within that directory
+
+- build/premake/premake5/
+ - BSD
+
+- build/premake/*.lua
+ - MIT - see license_mit.txt
+
+- docs/
+ - Various (unspecified)
+
+- libraries/
+ - Various - see LICENSE.txt within that directory
+
+- source/
+ - GPL version 2 (or later) - see license_gpl-2.0.txt
+
+- source/lib/
+ - MIT - see license_mit.txt
+
+- source/scriptinterface/third_party/
+ - MPL 2.0
+
+- source/third_party/encryption/
+ - GPL version 2 (or later)
+ - ISC (pkcs5_pbkdf2.cpp)
+ - MIT (pkcs5_pbkdf2.h) - see license_mit.txt
+
+- source/third-party/jsonspirit/
+ - MIT - see license_mit.txt
+
+- source/third_party/mikktspace/
+ - zlib
+
+- source/third_party/mongoose/
+ - MIT - see license_mit.txt
+
+- source/third_party/tinygettext/
+ - zlib
+
+- source/third-party/vma/
+ - MIT - see LICENSE.txt within that directory
+
+- source/tools/
+ - Various - see LICENSE.txt within that directory
+
+- source/tools/atlas/
+ - GPL version 2 (or later) - see license_gpl-2.0.txt
+
+- binaries/data/mods/public/gui/prelobby/common/terms/
+ binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt
+ binaries/data/mods/mod/gui/modio/Disclaimer.txt
+ - Redistributing modified Terms and Conditions of online services may be within the licensing,
+ but may not change the legality or enforceability of the terms of the service provider.
+ It may be against the terms of the service provider to use online services with modified terms.
Index: build/jenkins/dockerfiles/debian-trixie-docs.Dockerfile
===================================================================
--- /dev/null
+++ build/jenkins/dockerfiles/debian-trixie-docs.Dockerfile
@@ -0,0 +1,50 @@
+FROM debian:trixie-slim
+
+RUN useradd -ms /bin/bash --uid 1006 builder
+
+ARG DEBIAN_FRONTEND=noninteractive
+ARG DEBCONF_NOWARNINGS="yes"
+
+RUN apt-get -qqy update && apt-get install -qqy \
+ cmake \
+ curl \
+ doxygen \
+ graphviz \
+ libboost-dev \
+ libboost-filesystem-dev \
+ libcurl4-gnutls-dev \
+ libenet-dev \
+ libfmt-dev \
+ libfreetype6-dev \
+ libgloox-dev \
+ libgnutls28-dev \
+ libgtk-3-dev \
+ libicu-dev \
+ libidn11-dev \
+ libjson-perl \
+ libminiupnpc-dev \
+ libogg-dev \
+ libopenal-dev \
+ libpng-dev \
+ libsdl2-dev \
+ libsodium-dev \
+ libvorbis-dev \
+ libwxgtk3.0-dev \
+ libxcursor-dev \
+ libxml-simple-perl \
+ libxml2-dev \
+ m4 \
+ python3-dev \
+ python3-pip \
+ zlib1g-dev \
+ && apt-get clean
+
+# Install rust and Cargo via rustup
+USER builder
+RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+ENV PATH="${PATH}:/home/builder/.cargo/bin"
+USER root
+
+ENV SHELL /bin/bash
+
+USER builder
Index: build/jenkins/pipelines/docker-docs.Jenkinsfile
===================================================================
--- build/jenkins/pipelines/docker-docs.Jenkinsfile
+++ build/jenkins/pipelines/docker-docs.Jenkinsfile
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022 Wildfire Games.
+/* Copyright (C) 2024 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -32,7 +32,7 @@
stage("Engine docs") {
steps {
ws("/zpool0/entity-docs"){
- sh "cd docs/doxygen/ && doxygen config"
+ sh "cd docs/doxygen/ && cmake -S . -B build-docs && cmake --build build-docs"
}
}
}
@@ -62,7 +62,7 @@
stage("Upload") {
steps {
ws("/zpool0/entity-docs"){
- sh "rsync -rti --delete-after --progress docs/doxygen/html/ docs.wildfiregames.com:~/www/pyrogenesis/"
+ sh "rsync -rti --delete-after --progress docs/doxygen/build-docs/html/ docs.wildfiregames.com:~/www/pyrogenesis/"
sh "rsync -ti --progress source/tools/entdocs/entity-docs.html docs.wildfiregames.com:~/www/entity-docs/trunk.html"
sh "rsync -ti --progress source/tools/templatesanalyzer/unit_summary_table.html docs.wildfiregames.com:~/www/templatesanalyzer/index.html"
}
Index: build/jenkins/pipelines/docker-reset.Jenkinsfile
===================================================================
--- build/jenkins/pipelines/docker-reset.Jenkinsfile
+++ build/jenkins/pipelines/docker-reset.Jenkinsfile
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021 Wildfire Games.
+/* Copyright (C) 2024 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -43,6 +43,7 @@
sh 'docker build --no-cache -t build-base ~/dockerfiles/build-base'
sh 'docker build --no-cache -t 0ad-gcc7 ~/dockerfiles/gcc7'
sh 'docker build --no-cache -t 0ad-coala ~/dockerfiles/coala'
+ sh 'docker build --no-cache -t 0ad-docs ~/dockerfiles/debian-trixie-docs'
sh 'docker build --no-cache -t 0ad-translations ~/dockerfiles/translations'
}
}
@@ -51,6 +52,7 @@
sh 'docker build -t build-base ~/dockerfiles/build-base'
sh 'docker build -t 0ad-gcc7 ~/dockerfiles/gcc7'
sh 'docker build -t 0ad-coala ~/dockerfiles/coala'
+ sh 'docker build -t 0ad-docs ~/dockerfiles/debian-trixie-docs'
sh 'docker build -t 0ad-translations ~/dockerfiles/translations'
}
}
Index: docs/README.txt
===================================================================
--- docs/README.txt
+++ docs/README.txt
@@ -2,4 +2,6 @@
Doxygen documentation is at http://svn.wildfiregames.com/docs/
-To generate the Doxygen documentation: run "doxygen config" in docs/doxygen/
+To generate the Doxygen documentation: run "cmake -S . -B build-docs && cmake --build build-docs".
+
+If you build the documentation with cmake, the output is located in the folder html inside your specific build Directory.
Index: docs/doxygen/CMakeLists.txt
===================================================================
--- /dev/null
+++ docs/doxygen/CMakeLists.txt
@@ -0,0 +1,72 @@
+cmake_minimum_required(VERSION 3.18.4...3.28.0)
+
+project(Pyrogenesis DESCRIPTION "Pyrogenesis, an RTS Engine" LANGUAGES NONE)
+
+# Check if Doxygen and graphviz are installed.
+find_package(Doxygen 1.9.1 REQUIRED dot)
+
+if(DOXYGEN_FOUND)
+
+ include(FetchContent)
+
+ FetchContent_Declare(doxygen_awesome_css
+ GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css
+ GIT_TAG v2.3.2
+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/styling
+ )
+ FetchContent_MakeAvailable(doxygen_awesome_css)
+
+ # Get current Branch Name to set it as the Project Number.
+ find_package(Git)
+ find_package(Subversion)
+ if(Git_FOUND)
+ set(ENV{GIT_DISCOVERY_ACROSS_FILESYSTEM} 1)
+ execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --is-inside-work-tree OUTPUT_VARIABLE IS_GIT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+ if(IS_GIT)
+ execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD OUTPUT_VARIABLE CURRENT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ elseif(SUBVERSION_FOUND)
+ Subversion_WC_INFO(${CMAKE_CURRENT_SOURCE_DIR} SVN_DETAILS)
+ if(SVN_DETAILS)
+ string(REPLACE "https://svn.wildfiregames.com/public/ps/" "" CURRENT_BRANCH ${SVN_DETAILS_WC_URL})
+ string(REPLACE "/docs/doxygen" "" CURRENT_BRANCH ${CURRENT_BRANCH})
+ endif()
+ endif()
+
+ # Doxygen Configuration.
+ if(CURRENT_BRANCH)
+ set(DOXYGEN_PROJECT_NUMBER ${CURRENT_BRANCH})
+ else()
+ set(DOXYGEN_PROJECT_NUMBER trunk)
+ endif()
+ set(DOXYGEN_PROJECT_LOGO ${CMAKE_CURRENT_SOURCE_DIR}/pyro.jpg)
+ set(DOXYGEN_TAB_SIZE 4)
+ set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${CMAKE_CURRENT_SOURCE_DIR}/Main-Page.md)
+ set(DOXYGEN_EXCLUDE_PATTERNS */.svn* */tests/test_*)
+ set(DOXYGEN_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../source)
+ set(DOXYGEN_EXAMPLE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../source)
+ set(DOXYGEN_EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../source/tools ${CMAKE_CURRENT_SOURCE_DIR}/../../source/i18n/tests2 ${CMAKE_CURRENT_SOURCE_DIR}/../../source/simulation ${CMAKE_CURRENT_SOURCE_DIR}/../../source/third_party)
+ set(DOXYGEN_GENERATE_TREEVIEW YES)
+ set(DOXYGEN_HTML_EXTRA_STYLESHEET ${doxygen_awesome_css_SOURCE_DIR}/doxygen-awesome.css)
+ set(DOXYGEN_JAVADOC_AUTOBRIEF YES)
+ set(DOXYGEN_EXTRACT_ALL YES)
+ set(DOXYGEN_EXTRACT_PRIVATE YES)
+ set(DOXYGEN_EXTRACT_STATIC YES)
+ set(DOXYGEN_EXTRACT_ANON_NSPACES YES)
+ set(DOXYGEN_SHOW_DIRECTORIES YES)
+ set(DOXYGEN_STRIP_CODE_COMMENTS NO)
+ set(DOXYGEN_MACRO_EXPANSION YES)
+ set(DOXYGEN_EXPAND_ONLY_PREDEF YES)
+ set(DOXYGEN_GENERATE_TODOLIST NO)
+ set(DOXYGEN_PREDEFINED "UNUSED(x)=x" "METHODDEF(x)=static x" "GLOBAL(x)=x")
+ set(DOXYGEN_EXPAND_AS_DEFINED DEFAULT_COMPONENT_ALLOCATOR DEFAULT_SCRIPT_WRAPPER DEFAULT_INTERFACE_WRAPPER DEFAULT_MESSAGE_IMPL MESSAGE INTERFACE COMPONENT GUISTDTYPE)
+ set(DOXYGEN_WARN_LOGFILE doxygen.log)
+
+ doxygen_add_docs(${CMAKE_PROJECT_NAME}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../source
+ ${CMAKE_CURRENT_SOURCE_DIR}/Main-Page.md
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE.md
+ ALL)
+else()
+ message(SEND_ERROR "Make sure Doxygen is installed and usable")
+endif()
Index: docs/doxygen/Main-Page.md
===================================================================
--- /dev/null
+++ docs/doxygen/Main-Page.md
@@ -0,0 +1,14 @@
+# Pyrogenesis
+
+The Pyrogenesis Engine is specifically designed for flexibility and ease of modification.
+This document should help all that want to contribute their Work to this Engine.
+
+## Thirdparty
+
+- [Vulkan Memory Allocator](https://gpuopen-librariesandsdks.github.io/VulkanMemoryAllocator/html/)
+- [tinygettext](https://github.com/tinygettext/tinygettext)
+- [doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css)
+
+## License
+
+[0 A.D. Licensing Details](../../LICENSE.md)
Index: docs/doxygen/config
===================================================================
--- docs/doxygen/config
+++ /dev/null
@@ -1,32 +0,0 @@
-PROJECT_NAME = Pyrogenesis
-PROJECT_NUMBER = trunk
-
-TAB_SIZE = 4
-
-INPUT = ../../source
-INCLUDE_PATH = ../../source
-EXAMPLE_PATH = ../../source
-RECURSIVE = YES
-EXCLUDE_PATTERNS = */.svn* */tests/test_*
-EXCLUDE = ../../source/tools ../../source/i18n/tests2 ../../source/simulation
-
-JAVADOC_AUTOBRIEF = YES
-
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-EXTRACT_ANON_NSPACES = YES
-
-SHOW_DIRECTORIES = YES
-STRIP_CODE_COMMENTS = NO
-GENERATE_LATEX = NO
-
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-PREDEFINED = "UNUSED(x)=x" \
- "METHODDEF(x)=static x" \
- "GLOBAL(x)=x"
-EXPAND_AS_DEFINED += DEFAULT_COMPONENT_ALLOCATOR DEFAULT_SCRIPT_WRAPPER DEFAULT_INTERFACE_WRAPPER DEFAULT_MESSAGE_IMPL
-EXPAND_AS_DEFINED += MESSAGE INTERFACE COMPONENT GUISTDTYPE
-
-WARN_LOGFILE = doxygen.log