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