diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index d334178ed3..65482f4b2f 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -221,6 +221,8 @@ jobs: mkdir _install mkdir _build mkdir _examples + - name: Install help2man + run: yum install -y help2man - name: Configure run: | cmake .. \ @@ -230,7 +232,8 @@ jobs: -DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \ -DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \ -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOPENEXR_BUILD_TOOLS='ON' \ + -DOPENEXR_INSTALL_TOOLS='ON' \ + -DOPENEXR_INSTALL_DOCS='ON' \ -DOPENEXR_RUN_FUZZ_TESTS='OFF' \ -DOPENEXR_ENABLE_THREADING=${{ matrix.threads-enabled }} working-directory: _build @@ -363,7 +366,8 @@ jobs: -DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \ -DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \ -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOPENEXR_BUILD_TOOLS='ON' \ + -DOPENEXR_INSTALL_TOOLS='ON' \ + -DOPENEXR_INSTALL_DOCS='OFF' \ -DOPENEXR_RUN_FUZZ_TESTS='OFF' working-directory: _build - name: Build @@ -497,7 +501,8 @@ jobs: -DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \ -DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \ -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOPENEXR_BUILD_TOOLS='ON' \ + -DOPENEXR_INSTALL_TOOLS='ON' \ + -DOPENEXR_INSTALL_DOCS='OFF' \ -DOPENEXR_RUN_FUZZ_TESTS='OFF' shell: bash working-directory: _build @@ -534,16 +539,16 @@ jobs: shell: bash working-directory: _build - Docs: + Website: - # Build the documentation, using a process that mimics the readthedoc build. + # Build the website, using a process that mimics the readthedoc build. # # Note that this job does not actually build OpenEXR libraries or # programs, it just runs doxygen, sphinx, and the - # docs/script/test_images.py script to generate the "Test Images" + # website/script/test_images.py script to generate the "Test Images" # page. - name: 'Docs' + name: 'Website' runs-on: ubuntu-latest steps: @@ -554,17 +559,16 @@ jobs: - name: Install doxygen & imagemagick # Need imagemagick for convert, to convert "Test Image" exrs to jpgs # Need openexr for exrheader - # Need help2man for tool manpages - run: sudo apt-get install -y doxygen imagemagick openexr help2man + run: sudo apt-get install -y doxygen imagemagick openexr - name: Install sphinx requirements - run: pip3 install -r docs/requirements.txt + run: pip3 install -r website/requirements.txt - name: Configure - run: cmake .. -DBUILD_DOCS='ON' + run: cmake .. -DBUILD_WEBSITE='ON' working-directory: _build - name: Build run: | cmake --build . \ - --target docs \ + --target website \ --config Release working-directory: _build diff --git a/.readthedocs.yml b/.readthedocs.yml index 12a8dbf59e..88ca316272 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -15,11 +15,11 @@ build: - openexr # for exrheader, for test images jobs: pre_build: - - python docs/scripts/test_images.py + - python website/scripts/test_images.py sphinx: - configuration: docs/conf.py + configuration: website/conf.py python: install: - - requirements: docs/requirements.txt + - requirements: website/requirements.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ca300a534b..7aba193f62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,9 +122,16 @@ if(NOT OPENEXR_IS_SUBPROJECT) include(cmake/clang-format.cmake) endif() -option(BUILD_DOCS "Set ON to build html documentation") -if (BUILD_DOCS AND NOT OPENEXR_IS_SUBPROJECT) - option(INSTALL_DOCS "Set ON to install html documentation" ON) +option(OPENEXR_INSTALL_DOCS "Set ON to install tool manpages") +if (OPENEXR_INSTALL_DOCS AND NOT OPENEXR_IS_SUBPROJECT) add_subdirectory(docs) endif() +option(BUILD_WEBSITE "Set ON to build website source") +if (BUILD_WEBSITE AND NOT OPENEXR_IS_SUBPROJECT) + add_subdirectory(website) +else() + # Even if not building the website, still make sure the website example code compiles. + add_subdirectory(website/src) +endif() + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f5d8994157..9a9ba9cf65 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -259,7 +259,7 @@ submitted, in order to solicit feedback, try to get as much consensus as possible, and alert all the stakeholders to be on the lookout for the eventual PR when it appears. -* Trivial changes that don't affect functionality (typos, docs, tests) +* Trivial changes that don't affect functionality (typos, tests, website) can be approved by the committer without review, after waiting at least 48 hours. diff --git a/cmake/OpenEXRConfig.h.in b/cmake/OpenEXRConfig.h.in index 784f990ba7..9227aebf40 100644 --- a/cmake/OpenEXRConfig.h.in +++ b/cmake/OpenEXRConfig.h.in @@ -80,7 +80,7 @@ /// \defgroup ExportMacros Macros to manage symbol visibility /// -/// See docs/SymbolVisibility.md for more discussion about the +/// See website/SymbolVisibility.rst for more discussion about the /// motivation for these macros /// /// If we are compiling a DLL for Windows, there needs to be custom diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 9204acb39f..928e008dcd 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -3,66 +3,6 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) -find_package(Doxygen REQUIRED) -find_package(Sphinx REQUIRED) - -include(FindPythonPackage) -find_python_package(sphinx-press-theme REQUIRED) - -set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/src/lib/OpenEXRCore) -set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen) -set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/html/index.html) -set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) -set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) - -set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}) -set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx) -set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html) - -set(SPHINX_OPTS "-W" CACHE STRING "Sphinx build options") - -set(OPENEXR_TEST_IMAGE_REPO "https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images" - CACHE STRING "Repo for test images") -set(OPENEXR_TEST_IMAGE_TAG "main" - CACHE STRING "Tag for test image repo") - -set(TEST_IMAGE_INDEX_FILE ${PROJECT_SOURCE_DIR}/docs/_test_images/index.rst) -set(TEST_IMAGE_PY_FILE ${PROJECT_SOURCE_DIR}/docs/scripts/test_images.py) -set(TEST_IMAGE_INPUT_FILE ${PROJECT_SOURCE_DIR}/docs/test_images.txt) -configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY) - -file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR}) - -add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE} - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} - MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN} - COMMENT "Running doxygen" - VERBATIM) - -add_custom_command(OUTPUT ${TEST_IMAGE_INDEX_FILE} - # run the test_images.py script with the PATH set - # to include the build's bin directory, to pick up - # the local bin/exrheader executable - COMMAND ${CMAKE_COMMAND} -E env "PATH=${CMAKE_CURRENT_BINARY_DIR}/../bin:$ENV{PATH}" - ${Python3_EXECUTABLE} ${TEST_IMAGE_PY_FILE} ${OPENEXR_TEST_IMAGE_REPO} ${OPENEXR_TEST_IMAGE_TAG} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - DEPENDS - ${TEST_IMAGE_PY_FILE} ${TEST_IMAGE_INPUT_FILE} - COMMENT "Generating test image pages" - VERBATIM) - -add_custom_command(OUTPUT ${SPHINX_INDEX_FILE} - COMMAND - ${SPHINX_EXECUTABLE} -b html ${SPHINX_OPTS} - # Tell Breathe where to find the Doxygen output - -Dbreathe_projects.OpenEXR=${DOXYGEN_OUTPUT_DIR}/xml - ${SPHINX_SOURCE} ${SPHINX_BUILD} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${DOXYGEN_INDEX_FILE} ${TEST_IMAGE_INDEX_FILE} ${TEST_IMAGE_PY_FILE} ${TEST_IMAGE_INPUT_FILE} - MAIN_DEPENDENCY ${SPHINX_CONF_PY_FILE} - COMMENT "Generating documentation with Sphinx") - - # man pages for the bin programs find_program(HELP2MAN help2man) @@ -70,6 +10,9 @@ find_program(HELP2MAN help2man) set(MANPAGE_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/man) file(MAKE_DIRECTORY ${MANPAGE_OUTPUT_DIR}/man1) +message(STATUS "MANPAGE_OUTPUT_DIR=${MANPAGE_OUTPUT_DIR}") +message(STATUS "CMAKE_INSTALL_MANDIR=${CMAKE_INSTALL_MANDIR}") + set(manpage_files "") function(DEFINE_MANPAGE tool description) @@ -102,16 +45,10 @@ define_manpage(exrmultipart "combine or split multipart exr images") define_manpage(exrmultiview "convert between single/multi-view exr images") define_manpage(exrstdattr "set exr image metadata") -add_subdirectory(src) - add_custom_target(docs ALL DEPENDS - ${SPHINX_INDEX_FILE} - ${DOXYGEN_INDEX_FILE} - ${TEST_IMAGE_INDEX_FILE} - ${manpage_files} - ${CMAKE_BINARY_DIR}/bin/docs_src) + ${manpage_files}) -# Add a target to install the manpages, but *not* the html +# Add a target to install the manpages if(INSTALL_DOCS) include(GNUInstallDirs) diff --git a/docs/src/CMakeLists.txt b/docs/src/CMakeLists.txt deleted file mode 100644 index c46a0f9b71..0000000000 --- a/docs/src/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) Contributors to the OpenEXR Project. - -add_executable(docs_src all.cpp) -target_link_libraries(docs_src OpenEXR::OpenEXR) -set_target_properties(docs_src PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" -) -if(WIN32 AND BUILD_SHARED_LIBS) - target_compile_definitions(docs_src PRIVATE OPENEXR_DLL) -endif() diff --git a/src/lib/IlmThread/IlmThreadExport.h b/src/lib/IlmThread/IlmThreadExport.h index 12c2589883..a2fc813429 100644 --- a/src/lib/IlmThread/IlmThreadExport.h +++ b/src/lib/IlmThread/IlmThreadExport.h @@ -8,7 +8,7 @@ #include "OpenEXRConfig.h" -// See docs/SymbolVisibility.md for more discussion +// See website/SymbolVisibility.rst for more discussion /// \addtogroup ExportMacros /// @{ diff --git a/docs/API.rst b/website/API.rst similarity index 100% rename from docs/API.rst rename to website/API.rst diff --git a/website/CMakeLists.txt b/website/CMakeLists.txt new file mode 100644 index 0000000000..4d56433997 --- /dev/null +++ b/website/CMakeLists.txt @@ -0,0 +1,69 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright Contributors to the OpenEXR Project. + +set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) + +find_package(Doxygen REQUIRED) +find_package(Sphinx REQUIRED) + +include(FindPythonPackage) +find_python_package(sphinx-press-theme REQUIRED) + +set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/src/lib/OpenEXRCore) +set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen) +set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/html/index.html) +set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) +set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + +set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}) +set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx) +set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html) + +set(SPHINX_OPTS "-W" CACHE STRING "Sphinx build options") + +set(OPENEXR_TEST_IMAGE_REPO "https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images" + CACHE STRING "Repo for test images") +set(OPENEXR_TEST_IMAGE_TAG "main" + CACHE STRING "Tag for test image repo") + +set(TEST_IMAGE_INDEX_FILE ${PROJECT_SOURCE_DIR}/website/_test_images/index.rst) +set(TEST_IMAGE_PY_FILE ${PROJECT_SOURCE_DIR}/website/scripts/test_images.py) +set(TEST_IMAGE_INPUT_FILE ${PROJECT_SOURCE_DIR}/website/test_images.txt) +configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY) + +file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR}) + +add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE} + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} + MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN} + COMMENT "Running doxygen" + VERBATIM) + +add_custom_command(OUTPUT ${TEST_IMAGE_INDEX_FILE} + # run the test_images.py script with the PATH set + # to include the build's bin directory, to pick up + # the local bin/exrheader executable + COMMAND ${CMAKE_COMMAND} -E env "PATH=${CMAKE_CURRENT_BINARY_DIR}/../bin:$ENV{PATH}" + ${Python3_EXECUTABLE} ${TEST_IMAGE_PY_FILE} ${OPENEXR_TEST_IMAGE_REPO} ${OPENEXR_TEST_IMAGE_TAG} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + DEPENDS + ${TEST_IMAGE_PY_FILE} ${TEST_IMAGE_INPUT_FILE} + COMMENT "Generating test image pages" + VERBATIM) + +add_custom_command(OUTPUT ${SPHINX_INDEX_FILE} + COMMAND + ${SPHINX_EXECUTABLE} -b html ${SPHINX_OPTS} + # Tell Breathe where to find the Doxygen output + -Dbreathe_projects.OpenEXR=${DOXYGEN_OUTPUT_DIR}/xml + ${SPHINX_SOURCE} ${SPHINX_BUILD} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${DOXYGEN_INDEX_FILE} ${TEST_IMAGE_INDEX_FILE} ${TEST_IMAGE_PY_FILE} ${TEST_IMAGE_INPUT_FILE} + MAIN_DEPENDENCY ${SPHINX_CONF_PY_FILE} + COMMENT "Generating documentation with Sphinx") + +add_custom_target(website ALL DEPENDS + ${SPHINX_INDEX_FILE} + ${DOXYGEN_INDEX_FILE} + ${TEST_IMAGE_INDEX_FILE}) + diff --git a/docs/Doxyfile.in b/website/Doxyfile.in similarity index 100% rename from docs/Doxyfile.in rename to website/Doxyfile.in diff --git a/docs/HelloWorld.rst b/website/HelloWorld.rst similarity index 100% rename from docs/HelloWorld.rst rename to website/HelloWorld.rst diff --git a/docs/InterpretingDeepPixels.rst b/website/InterpretingDeepPixels.rst similarity index 100% rename from docs/InterpretingDeepPixels.rst rename to website/InterpretingDeepPixels.rst diff --git a/docs/MultiViewOpenEXR.rst b/website/MultiViewOpenEXR.rst similarity index 100% rename from docs/MultiViewOpenEXR.rst rename to website/MultiViewOpenEXR.rst diff --git a/docs/OpenEXRCoreAPI.rst b/website/OpenEXRCoreAPI.rst similarity index 100% rename from docs/OpenEXRCoreAPI.rst rename to website/OpenEXRCoreAPI.rst diff --git a/docs/OpenEXRFileLayout.rst b/website/OpenEXRFileLayout.rst similarity index 100% rename from docs/OpenEXRFileLayout.rst rename to website/OpenEXRFileLayout.rst diff --git a/docs/PortingGuide.rst b/website/PortingGuide.rst similarity index 100% rename from docs/PortingGuide.rst rename to website/PortingGuide.rst diff --git a/docs/ReadingAndWritingImageFiles.rst b/website/ReadingAndWritingImageFiles.rst similarity index 99% rename from docs/ReadingAndWritingImageFiles.rst rename to website/ReadingAndWritingImageFiles.rst index 975ede1b03..432e04cf9b 100644 --- a/docs/ReadingAndWritingImageFiles.rst +++ b/website/ReadingAndWritingImageFiles.rst @@ -1453,6 +1453,9 @@ access the data in the file directly, bypassing any copy operations associated with reading the file via a C++ ``std::ifstream`` or a C ``FILE``. +Note that the following examples use POSIX memory mapping, not +supported on Windows. + Classes derived from ``IStream`` can optionally support memory-mapped input. In order to do this, a derived class must override two virtual functions, ``isMemoryMapped()`` and ``readMemoryMapped()``, in @@ -1677,20 +1680,12 @@ subsampled. Function ``makePreviewImage()`` calls ``gamma()`` to convert the floating-point red, green, and blue components of the sampled main image pixels to ``unsigned char`` values. ``gamma()`` is a simplified -version of what the exrdisplay program does in order to show an -OpenEXR image's floating-point pixels on the screen (for details, see -exrdisplay's source code): +version of what a program should do on order to show an OpenEXR +image's floating-point pixels on the screen: -.. code-block:: +.. literalinclude:: src/gamma.cpp :linenos: - unsigned char - gamma (float x) - { - x = pow (5.5555f * max (0.f, x), 0.4545f) * 84.66f; - return (unsigned char) clamp (x, 0.f, 255.f); - } - ``makePreviewImage()`` converts the pixels' alpha component to unsigned char by by linearly mapping the range ``[0.0, 1.0]`` to ``[0,255]``. diff --git a/docs/StandardOptionalAttributes.rst b/website/StandardOptionalAttributes.rst similarity index 100% rename from docs/StandardOptionalAttributes.rst rename to website/StandardOptionalAttributes.rst diff --git a/docs/SymbolVisibility.rst b/website/SymbolVisibility.rst similarity index 100% rename from docs/SymbolVisibility.rst rename to website/SymbolVisibility.rst diff --git a/docs/TechnicalIntroduction.rst b/website/TechnicalIntroduction.rst similarity index 100% rename from docs/TechnicalIntroduction.rst rename to website/TechnicalIntroduction.rst diff --git a/docs/TheoryDeepPixels.rst b/website/TheoryDeepPixels.rst similarity index 100% rename from docs/TheoryDeepPixels.rst rename to website/TheoryDeepPixels.rst diff --git a/docs/about.rst b/website/about.rst similarity index 100% rename from docs/about.rst rename to website/about.rst diff --git a/docs/bin/exr2aces.rst b/website/bin/exr2aces.rst similarity index 100% rename from docs/bin/exr2aces.rst rename to website/bin/exr2aces.rst diff --git a/docs/bin/exrcheck.rst b/website/bin/exrcheck.rst similarity index 100% rename from docs/bin/exrcheck.rst rename to website/bin/exrcheck.rst diff --git a/docs/bin/exrenvmap.rst b/website/bin/exrenvmap.rst similarity index 100% rename from docs/bin/exrenvmap.rst rename to website/bin/exrenvmap.rst diff --git a/docs/bin/exrheader.rst b/website/bin/exrheader.rst similarity index 100% rename from docs/bin/exrheader.rst rename to website/bin/exrheader.rst diff --git a/docs/bin/exrinfo.rst b/website/bin/exrinfo.rst similarity index 100% rename from docs/bin/exrinfo.rst rename to website/bin/exrinfo.rst diff --git a/docs/bin/exrmakepreview.rst b/website/bin/exrmakepreview.rst similarity index 100% rename from docs/bin/exrmakepreview.rst rename to website/bin/exrmakepreview.rst diff --git a/docs/bin/exrmaketiled.rst b/website/bin/exrmaketiled.rst similarity index 100% rename from docs/bin/exrmaketiled.rst rename to website/bin/exrmaketiled.rst diff --git a/docs/bin/exrmultipart.rst b/website/bin/exrmultipart.rst similarity index 100% rename from docs/bin/exrmultipart.rst rename to website/bin/exrmultipart.rst diff --git a/docs/bin/exrmultiview.rst b/website/bin/exrmultiview.rst similarity index 100% rename from docs/bin/exrmultiview.rst rename to website/bin/exrmultiview.rst diff --git a/docs/bin/exrstdattr.rst b/website/bin/exrstdattr.rst similarity index 100% rename from docs/bin/exrstdattr.rst rename to website/bin/exrstdattr.rst diff --git a/docs/concepts.rst b/website/concepts.rst similarity index 100% rename from docs/concepts.rst rename to website/concepts.rst diff --git a/docs/conf.py b/website/conf.py similarity index 100% rename from docs/conf.py rename to website/conf.py diff --git a/docs/images/InterpretingDeepPixels1.png b/website/images/InterpretingDeepPixels1.png similarity index 100% rename from docs/images/InterpretingDeepPixels1.png rename to website/images/InterpretingDeepPixels1.png diff --git a/docs/images/InterpretingDeepPixels2.png b/website/images/InterpretingDeepPixels2.png similarity index 100% rename from docs/images/InterpretingDeepPixels2.png rename to website/images/InterpretingDeepPixels2.png diff --git a/docs/images/InterpretingDeepPixels3.png b/website/images/InterpretingDeepPixels3.png similarity index 100% rename from docs/images/InterpretingDeepPixels3.png rename to website/images/InterpretingDeepPixels3.png diff --git a/docs/images/OpenEXR_Reel_2020.png b/website/images/OpenEXR_Reel_2020.png similarity index 100% rename from docs/images/OpenEXR_Reel_2020.png rename to website/images/OpenEXR_Reel_2020.png diff --git a/docs/images/cubeMap.big.png b/website/images/cubeMap.big.png similarity index 100% rename from docs/images/cubeMap.big.png rename to website/images/cubeMap.big.png diff --git a/docs/images/cubeMap.png b/website/images/cubeMap.png similarity index 100% rename from docs/images/cubeMap.png rename to website/images/cubeMap.png diff --git a/docs/images/drawing.png b/website/images/drawing.png similarity index 100% rename from docs/images/drawing.png rename to website/images/drawing.png diff --git a/docs/images/envcube.png b/website/images/envcube.png similarity index 100% rename from docs/images/envcube.png rename to website/images/envcube.png diff --git a/docs/images/latlong.png b/website/images/latlong.png similarity index 100% rename from docs/images/latlong.png rename to website/images/latlong.png diff --git a/docs/images/latlongMap.big.png b/website/images/latlongMap.big.png similarity index 100% rename from docs/images/latlongMap.big.png rename to website/images/latlongMap.big.png diff --git a/docs/images/latlongMap.png b/website/images/latlongMap.png similarity index 100% rename from docs/images/latlongMap.png rename to website/images/latlongMap.png diff --git a/docs/images/openexr-fav.ico b/website/images/openexr-fav.ico similarity index 100% rename from docs/images/openexr-fav.ico rename to website/images/openexr-fav.ico diff --git a/docs/images/openexr-horizontal-color.png b/website/images/openexr-horizontal-color.png similarity index 100% rename from docs/images/openexr-horizontal-color.png rename to website/images/openexr-horizontal-color.png diff --git a/docs/images/openexr-logo.jpg b/website/images/openexr-logo.jpg similarity index 100% rename from docs/images/openexr-logo.jpg rename to website/images/openexr-logo.jpg diff --git a/docs/images/openexr-stacked-color.png b/website/images/openexr-stacked-color.png similarity index 100% rename from docs/images/openexr-stacked-color.png rename to website/images/openexr-stacked-color.png diff --git a/docs/images/screenwin.big.png b/website/images/screenwin.big.png similarity index 100% rename from docs/images/screenwin.big.png rename to website/images/screenwin.big.png diff --git a/docs/images/screenwin.png b/website/images/screenwin.png similarity index 100% rename from docs/images/screenwin.png rename to website/images/screenwin.png diff --git a/docs/images/tiles.big.png b/website/images/tiles.big.png similarity index 100% rename from docs/images/tiles.big.png rename to website/images/tiles.big.png diff --git a/docs/images/tiles.png b/website/images/tiles.png similarity index 100% rename from docs/images/tiles.png rename to website/images/tiles.png diff --git a/docs/images/twosamples.png b/website/images/twosamples.png similarity index 100% rename from docs/images/twosamples.png rename to website/images/twosamples.png diff --git a/docs/images/windowExample1.big.png b/website/images/windowExample1.big.png similarity index 100% rename from docs/images/windowExample1.big.png rename to website/images/windowExample1.big.png diff --git a/docs/images/windowExample1.png b/website/images/windowExample1.png similarity index 100% rename from docs/images/windowExample1.png rename to website/images/windowExample1.png diff --git a/docs/images/windowExample1.small.png b/website/images/windowExample1.small.png similarity index 100% rename from docs/images/windowExample1.small.png rename to website/images/windowExample1.small.png diff --git a/docs/images/windowExample2.big.png b/website/images/windowExample2.big.png similarity index 100% rename from docs/images/windowExample2.big.png rename to website/images/windowExample2.big.png diff --git a/docs/images/windowExample2.png b/website/images/windowExample2.png similarity index 100% rename from docs/images/windowExample2.png rename to website/images/windowExample2.png diff --git a/docs/index.rst b/website/index.rst similarity index 100% rename from docs/index.rst rename to website/index.rst diff --git a/docs/install.rst b/website/install.rst similarity index 89% rename from docs/install.rst rename to website/install.rst index d48150dd77..44b33ab4ee 100644 --- a/docs/install.rst +++ b/website/install.rst @@ -206,61 +206,50 @@ See the :doc:`PortingGuide` for details about differences from previous releases and how to address them. Also refer to the porting guide for details about changes to Imath. -Building the Documentation --------------------------- - -The OpenEXR technical documentation at `https://openexr.readthedocs.io -`_ is generated via `Sphinx -`_ with the `Breathe -`_ extension using information -extracted from header comments by `Doxygen `_. - -To build the documentation locally from the source headers and -``.rst`` files, set the CMake option ``BUILD_DOCS=ON``. This adds -``Doxygen`` and ``Sphinx`` CMake targets and enables building the docs -by default. generation is off by default. - -Building the documentation requires that ``sphinx``, ``breathe``, and +Building the Website +-------------------- + +The `https://openexr.com `_ website is generated +via `Sphinx `_ with the `Breathe +`_ extension, using the `sphinx-press-theme +`_, and is hosted by +`readthedocs `_. The website +source is in `restructured text +`_ +in the ``website`` directory. + +To build the website locally from the source ``.rst`` files, set the +CMake option ``BUILD_WEBSITE=ON``. This adds the ``website`` CMake +target. Generation is off by default. + +Building the website requires that ``sphinx``, ``breathe``, and ``doxygen`` are installed. It further requires the `sphinx-press-theme -`_, as indicated in the -`requirements.txt -`_ -file. - -See the `doxygen downloads page -`_ for how to install it. Binary -distributions are available for many systems, so you likely do not -need to build from source. On Debian/Ubuntu, for example: - -.. code-block:: - - $ sudo apt-get install doxygen - -Similarly, see the `sphinx installation page -`_ for -how to install it. On Debian/Ubuntu: +`_. Complete dependencies +are described in the `requirements.txt +`_ +file. Furthermore, building the website from source requires the Imagemagick +`convert `_ utility, which +processes exr files from +`https://github.com/AcademySoftwareFoundation/openexr-images +`_ for +the example image gallery. + +On Debian/Ubuntu Linux: .. code-block:: - $ sudo apt-get install python3-sphinx - -And to install `sphinx-press-theme -`_: - -.. code-block:: - - $ pip3 install sphinx_press_theme - -Note that the `https://openexr.readthedocs.io `_ -documentation takes the place of the formerly distributed .pdf -documents in the ``docs`` folder, although readthedocs supports -downloading of documentation in pdf format, for those who prefer it -that way. + % apt-get install doxygen python3-sphinx imagemagick + % pip3 install breathe + % pip3 install sphinx_press_theme + + % mkdir _build + % cd _build + % cmake .. -DBUILD_WEBSITE=ON + % cmake --build . --target website CMake Build-time Configuration Options -------------------------------------- - The default CMake configuration options are stored in ``cmake/OpenEXRSetup.cmake``. To see a complete set of option variables, run: diff --git a/docs/license.rst b/website/license.rst similarity index 100% rename from docs/license.rst rename to website/license.rst diff --git a/docs/news.rst b/website/news.rst similarity index 100% rename from docs/news.rst rename to website/news.rst diff --git a/docs/requirements.txt b/website/requirements.txt similarity index 100% rename from docs/requirements.txt rename to website/requirements.txt diff --git a/docs/scripts/test_images.py b/website/scripts/test_images.py similarity index 96% rename from docs/scripts/test_images.py rename to website/scripts/test_images.py index 80dcd386bb..d1277e4896 100755 --- a/docs/scripts/test_images.py +++ b/website/scripts/test_images.py @@ -6,7 +6,7 @@ # # Generate the "Test Images" page for the openexr.com website # -# The file "docs/test_images.txt" contains urls for either .exr files +# The file "website/test_images.txt" contains urls for either .exr files # or README.txt files from # https://github.com/AcademySoftwareFoundation/openexr-images. This # script processes them into .rst files with a main index listing all @@ -24,7 +24,7 @@ # Note that the README.rst files in the openexr-images repo are never # actually processed directly by sphinx. # -# The generated .rst and .jpg files all go in the "docs/_test_images" +# The generated .rst and .jpg files all go in the "website/_test_images" # directory underneath the source root. Ideally, these would go in the # build root, but sphinx expects all source content under a single # root. @@ -293,19 +293,19 @@ def write_exr_to_index(index_file, repo, tag, exr_lpath, readme): # Examples: # repo = 'https://raw.githubusercontent.com/cary-ilm/openexr-images' - # tag = 'docs' + # tag = 'website' # exr_lpath = v2/LeftView/Ground.exr - test_images = 'docs/_test_images/' - output_dirname = test_images + os.path.dirname(exr_lpath) # docs/_test_images/v2/LeftView + test_images = 'website/_test_images/' + output_dirname = test_images + os.path.dirname(exr_lpath) # website/_test_images/v2/LeftView os.makedirs(output_dirname, exist_ok=True) base_path = os.path.splitext(exr_lpath)[0] # v2/LeftView/Ground exr_filename = os.path.basename(exr_lpath) # Ground.exr exr_basename = os.path.splitext(exr_filename)[0] # Ground exr_dirname = os.path.dirname(exr_lpath) # v2/LeftView - rst_lpath = f'{test_images}{exr_dirname}/{exr_basename}.rst' # docs/_test_images/v2/LeftView/Ground.rst + rst_lpath = f'{test_images}{exr_dirname}/{exr_basename}.rst' # website/_test_images/v2/LeftView/Ground.rst jpg_rpath = f'{exr_dirname}/{exr_dirname.replace("/", "_")}_{exr_basename}.jpg' - jpg_lpath = test_images + jpg_rpath # docs/_test_images/v2/LeftView/Ground.K@#YSDF.jpg + jpg_lpath = test_images + jpg_rpath # website/_test_images/v2/LeftView/Ground.K@#YSDF.jpg exr_url = f'{repo}/{tag}/{exr_lpath}' @@ -401,9 +401,9 @@ def write_table_close(index_file): try: - os.makedirs('docs/_test_images', exist_ok=True) + os.makedirs('website/_test_images', exist_ok=True) - with open('docs/_test_images/index.rst', 'w') as index_file: + with open('website/_test_images/index.rst', 'w') as index_file: index_file.write('Test Images\n') index_file.write('###########\n') @@ -421,7 +421,7 @@ def write_table_close(index_file): # Process each url in the .txt file - with open('docs/test_images.txt', 'r') as test_images_file: + with open('website/test_images.txt', 'r') as test_images_file: for line in test_images_file.readlines(): if line.startswith('#'): @@ -452,7 +452,7 @@ def write_table_close(index_file): # Write the toctree file, one entry per .exr page - with open('docs/_test_images/toctree.rst', 'w') as toctree_file: + with open('website/_test_images/toctree.rst', 'w') as toctree_file: toctree_file.write('..\n') toctree_file.write(' SPDX-License-Identifier: BSD-3-Clause\n') toctree_file.write(' Copyright Contributors to the OpenEXR Project.\n') diff --git a/docs/source_images/blobs.png b/website/source_images/blobs.png similarity index 100% rename from docs/source_images/blobs.png rename to website/source_images/blobs.png diff --git a/docs/source_images/cubeMap.fig b/website/source_images/cubeMap.fig similarity index 100% rename from docs/source_images/cubeMap.fig rename to website/source_images/cubeMap.fig diff --git a/docs/source_images/dataDisplayWindow.fig b/website/source_images/dataDisplayWindow.fig similarity index 100% rename from docs/source_images/dataDisplayWindow.fig rename to website/source_images/dataDisplayWindow.fig diff --git a/docs/source_images/kapaa.png b/website/source_images/kapaa.png similarity index 100% rename from docs/source_images/kapaa.png rename to website/source_images/kapaa.png diff --git a/docs/source_images/latlongMap.fig b/website/source_images/latlongMap.fig similarity index 100% rename from docs/source_images/latlongMap.fig rename to website/source_images/latlongMap.fig diff --git a/docs/source_images/screenwin.fig b/website/source_images/screenwin.fig similarity index 100% rename from docs/source_images/screenwin.fig rename to website/source_images/screenwin.fig diff --git a/docs/source_images/still.png b/website/source_images/still.png similarity index 100% rename from docs/source_images/still.png rename to website/source_images/still.png diff --git a/docs/source_images/tiles.fig b/website/source_images/tiles.fig similarity index 100% rename from docs/source_images/tiles.fig rename to website/source_images/tiles.fig diff --git a/docs/source_images/windowExample1.fig b/website/source_images/windowExample1.fig similarity index 100% rename from docs/source_images/windowExample1.fig rename to website/source_images/windowExample1.fig diff --git a/docs/source_images/windowExample2.fig b/website/source_images/windowExample2.fig similarity index 100% rename from docs/source_images/windowExample2.fig rename to website/source_images/windowExample2.fig diff --git a/website/src/CMakeLists.txt b/website/src/CMakeLists.txt new file mode 100644 index 0000000000..c3a99a00af --- /dev/null +++ b/website/src/CMakeLists.txt @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) Contributors to the OpenEXR Project. + +add_executable(website_src all.cpp) +target_link_libraries(website_src OpenEXR::OpenEXR) +set_target_properties(website_src PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +) diff --git a/docs/src/C_IStream.cpp b/website/src/C_IStream.cpp similarity index 100% rename from docs/src/C_IStream.cpp rename to website/src/C_IStream.cpp diff --git a/docs/src/C_IStream_clear.cpp b/website/src/C_IStream_clear.cpp similarity index 100% rename from docs/src/C_IStream_clear.cpp rename to website/src/C_IStream_clear.cpp diff --git a/docs/src/C_IStream_read.cpp b/website/src/C_IStream_read.cpp similarity index 100% rename from docs/src/C_IStream_read.cpp rename to website/src/C_IStream_read.cpp diff --git a/docs/src/C_IStream_seekg.cpp b/website/src/C_IStream_seekg.cpp similarity index 100% rename from docs/src/C_IStream_seekg.cpp rename to website/src/C_IStream_seekg.cpp diff --git a/docs/src/C_IStream_tellg.cpp b/website/src/C_IStream_tellg.cpp similarity index 100% rename from docs/src/C_IStream_tellg.cpp rename to website/src/C_IStream_tellg.cpp diff --git a/docs/src/IStream.cpp b/website/src/IStream.cpp similarity index 100% rename from docs/src/IStream.cpp rename to website/src/IStream.cpp diff --git a/docs/src/MemoryMappedIStream.cpp b/website/src/MemoryMappedIStream.cpp similarity index 100% rename from docs/src/MemoryMappedIStream.cpp rename to website/src/MemoryMappedIStream.cpp diff --git a/docs/src/MemoryMappedIStream_constructor.cpp b/website/src/MemoryMappedIStream_constructor.cpp similarity index 100% rename from docs/src/MemoryMappedIStream_constructor.cpp rename to website/src/MemoryMappedIStream_constructor.cpp diff --git a/docs/src/MemoryMappedIStream_destructor.cpp b/website/src/MemoryMappedIStream_destructor.cpp similarity index 100% rename from docs/src/MemoryMappedIStream_destructor.cpp rename to website/src/MemoryMappedIStream_destructor.cpp diff --git a/docs/src/MemoryMappedIStream_isMemoryMapped.cpp b/website/src/MemoryMappedIStream_isMemoryMapped.cpp similarity index 100% rename from docs/src/MemoryMappedIStream_isMemoryMapped.cpp rename to website/src/MemoryMappedIStream_isMemoryMapped.cpp diff --git a/docs/src/MemoryMappedIStream_read.cpp b/website/src/MemoryMappedIStream_read.cpp similarity index 100% rename from docs/src/MemoryMappedIStream_read.cpp rename to website/src/MemoryMappedIStream_read.cpp diff --git a/docs/src/MemoryMappedIStream_readMemoryMapped.cpp b/website/src/MemoryMappedIStream_readMemoryMapped.cpp similarity index 100% rename from docs/src/MemoryMappedIStream_readMemoryMapped.cpp rename to website/src/MemoryMappedIStream_readMemoryMapped.cpp diff --git a/docs/src/all.cpp b/website/src/all.cpp similarity index 95% rename from docs/src/all.cpp rename to website/src/all.cpp index 1411074e00..f7e860dba6 100644 --- a/docs/src/all.cpp +++ b/website/src/all.cpp @@ -17,18 +17,24 @@ #include #include +#include #include #include -#include #include #include #include + +#ifndef _WIN32 +#include #include +#endif using namespace Imath; using namespace Imf; +using std::max; + struct GZ { half g; @@ -69,13 +75,16 @@ namespace XXX { #include "C_IStream_read.cpp" #include "C_IStream_seekg.cpp" #include "C_IStream_tellg.cpp" +#include "gamma.cpp" #include "makePreviewImage.cpp" +#ifndef _WIN32 #include "MemoryMappedIStream.cpp" #include "MemoryMappedIStream_isMemoryMapped.cpp" #include "MemoryMappedIStream_destructor.cpp" #include "MemoryMappedIStream_constructor.cpp" #include "MemoryMappedIStream_read.cpp" #include "MemoryMappedIStream_readMemoryMapped.cpp" +#endif #include "mergeOverlappingSamples.cpp" #include "readDeepScanLineFile.cpp" #include "readDeepTiledFile.cpp" diff --git a/website/src/gamma.cpp b/website/src/gamma.cpp new file mode 100644 index 0000000000..a5695d26d9 --- /dev/null +++ b/website/src/gamma.cpp @@ -0,0 +1,7 @@ +unsigned char +gamma (float x) +{ + x = pow (5.5555f * max (0.f, x), 0.4545f) * 84.66f; + return (unsigned char) clamp (x, 0.f, 255.f); +} + diff --git a/docs/src/makePreviewImage.cpp b/website/src/makePreviewImage.cpp similarity index 89% rename from docs/src/makePreviewImage.cpp rename to website/src/makePreviewImage.cpp index 5c61f372b2..794b3b0df8 100644 --- a/docs/src/makePreviewImage.cpp +++ b/website/src/makePreviewImage.cpp @@ -25,7 +25,7 @@ makePreviewImage ( outPixel.r = gamma (inPixel.r); outPixel.g = gamma (inPixel.g); outPixel.b = gamma (inPixel.b); - outPixel.a = int (std::clamp (inPixel.a * 255.f, 0.f, 255.f) + 0.5f); + outPixel.a = static_cast (clamp (inPixel.a * 255.f, 0.f, 255.f) + 0.5f); } } } diff --git a/docs/src/mergeOverlappingSamples.cpp b/website/src/mergeOverlappingSamples.cpp similarity index 100% rename from docs/src/mergeOverlappingSamples.cpp rename to website/src/mergeOverlappingSamples.cpp diff --git a/docs/src/readDeepScanLineFile.cpp b/website/src/readDeepScanLineFile.cpp similarity index 100% rename from docs/src/readDeepScanLineFile.cpp rename to website/src/readDeepScanLineFile.cpp diff --git a/docs/src/readDeepTiledFile.cpp b/website/src/readDeepTiledFile.cpp similarity index 100% rename from docs/src/readDeepTiledFile.cpp rename to website/src/readDeepTiledFile.cpp diff --git a/docs/src/readGZ1.cpp b/website/src/readGZ1.cpp similarity index 100% rename from docs/src/readGZ1.cpp rename to website/src/readGZ1.cpp diff --git a/docs/src/readGZ2.cpp b/website/src/readGZ2.cpp similarity index 100% rename from docs/src/readGZ2.cpp rename to website/src/readGZ2.cpp diff --git a/docs/src/readHeader.cpp b/website/src/readHeader.cpp similarity index 100% rename from docs/src/readHeader.cpp rename to website/src/readHeader.cpp diff --git a/docs/src/readRgba1.cpp b/website/src/readRgba1.cpp similarity index 100% rename from docs/src/readRgba1.cpp rename to website/src/readRgba1.cpp diff --git a/docs/src/readRgba2.cpp b/website/src/readRgba2.cpp similarity index 100% rename from docs/src/readRgba2.cpp rename to website/src/readRgba2.cpp diff --git a/docs/src/readRgbaFILE.cpp b/website/src/readRgbaFILE.cpp similarity index 100% rename from docs/src/readRgbaFILE.cpp rename to website/src/readRgbaFILE.cpp diff --git a/docs/src/readTiled1.cpp b/website/src/readTiled1.cpp similarity index 100% rename from docs/src/readTiled1.cpp rename to website/src/readTiled1.cpp diff --git a/docs/src/readTiledRgba1.cpp b/website/src/readTiledRgba1.cpp similarity index 100% rename from docs/src/readTiledRgba1.cpp rename to website/src/readTiledRgba1.cpp diff --git a/docs/src/reader/CMakeLists.txt b/website/src/reader/CMakeLists.txt similarity index 100% rename from docs/src/reader/CMakeLists.txt rename to website/src/reader/CMakeLists.txt diff --git a/docs/src/reader/build.sh b/website/src/reader/build.sh similarity index 100% rename from docs/src/reader/build.sh rename to website/src/reader/build.sh diff --git a/docs/src/reader/reader.cpp b/website/src/reader/reader.cpp similarity index 100% rename from docs/src/reader/reader.cpp rename to website/src/reader/reader.cpp diff --git a/docs/src/splitVolumeSample.cpp b/website/src/splitVolumeSample.cpp similarity index 100% rename from docs/src/splitVolumeSample.cpp rename to website/src/splitVolumeSample.cpp diff --git a/docs/src/writeDeepScanLineFile.cpp b/website/src/writeDeepScanLineFile.cpp similarity index 100% rename from docs/src/writeDeepScanLineFile.cpp rename to website/src/writeDeepScanLineFile.cpp diff --git a/docs/src/writeDeepTiledFile.cpp b/website/src/writeDeepTiledFile.cpp similarity index 100% rename from docs/src/writeDeepTiledFile.cpp rename to website/src/writeDeepTiledFile.cpp diff --git a/docs/src/writeGZ1.cpp b/website/src/writeGZ1.cpp similarity index 100% rename from docs/src/writeGZ1.cpp rename to website/src/writeGZ1.cpp diff --git a/docs/src/writeGZ2.cpp b/website/src/writeGZ2.cpp similarity index 100% rename from docs/src/writeGZ2.cpp rename to website/src/writeGZ2.cpp diff --git a/docs/src/writeRgba1.cpp b/website/src/writeRgba1.cpp similarity index 100% rename from docs/src/writeRgba1.cpp rename to website/src/writeRgba1.cpp diff --git a/docs/src/writeRgba2.cpp b/website/src/writeRgba2.cpp similarity index 100% rename from docs/src/writeRgba2.cpp rename to website/src/writeRgba2.cpp diff --git a/docs/src/writeRgba3.cpp b/website/src/writeRgba3.cpp similarity index 100% rename from docs/src/writeRgba3.cpp rename to website/src/writeRgba3.cpp diff --git a/docs/src/writeRgbaMT.cpp b/website/src/writeRgbaMT.cpp similarity index 100% rename from docs/src/writeRgbaMT.cpp rename to website/src/writeRgbaMT.cpp diff --git a/docs/src/writeRgbaWithPreview1.cpp b/website/src/writeRgbaWithPreview1.cpp similarity index 100% rename from docs/src/writeRgbaWithPreview1.cpp rename to website/src/writeRgbaWithPreview1.cpp diff --git a/docs/src/writeRgbaWithPreview2.cpp b/website/src/writeRgbaWithPreview2.cpp similarity index 100% rename from docs/src/writeRgbaWithPreview2.cpp rename to website/src/writeRgbaWithPreview2.cpp diff --git a/docs/src/writeTiled1.cpp b/website/src/writeTiled1.cpp similarity index 100% rename from docs/src/writeTiled1.cpp rename to website/src/writeTiled1.cpp diff --git a/docs/src/writeTiledRgbaMIP1.cpp b/website/src/writeTiledRgbaMIP1.cpp similarity index 100% rename from docs/src/writeTiledRgbaMIP1.cpp rename to website/src/writeTiledRgbaMIP1.cpp diff --git a/docs/src/writeTiledRgbaMIP2.cpp b/website/src/writeTiledRgbaMIP2.cpp similarity index 100% rename from docs/src/writeTiledRgbaMIP2.cpp rename to website/src/writeTiledRgbaMIP2.cpp diff --git a/docs/src/writeTiledRgbaONE1.cpp b/website/src/writeTiledRgbaONE1.cpp similarity index 100% rename from docs/src/writeTiledRgbaONE1.cpp rename to website/src/writeTiledRgbaONE1.cpp diff --git a/docs/src/writeTiledRgbaONE2.cpp b/website/src/writeTiledRgbaONE2.cpp similarity index 100% rename from docs/src/writeTiledRgbaONE2.cpp rename to website/src/writeTiledRgbaONE2.cpp diff --git a/docs/src/writeTiledRgbaRIP1.cpp b/website/src/writeTiledRgbaRIP1.cpp similarity index 100% rename from docs/src/writeTiledRgbaRIP1.cpp rename to website/src/writeTiledRgbaRIP1.cpp diff --git a/docs/src/writer/CMakeLists.txt b/website/src/writer/CMakeLists.txt similarity index 100% rename from docs/src/writer/CMakeLists.txt rename to website/src/writer/CMakeLists.txt diff --git a/docs/src/writer/build.sh b/website/src/writer/build.sh similarity index 100% rename from docs/src/writer/build.sh rename to website/src/writer/build.sh diff --git a/docs/src/writer/writer.cpp b/website/src/writer/writer.cpp similarity index 100% rename from docs/src/writer/writer.cpp rename to website/src/writer/writer.cpp diff --git a/docs/test_images.txt b/website/test_images.txt similarity index 100% rename from docs/test_images.txt rename to website/test_images.txt diff --git a/docs/toc_redirect.rst b/website/toc_redirect.rst similarity index 100% rename from docs/toc_redirect.rst rename to website/toc_redirect.rst diff --git a/docs/tools.rst b/website/tools.rst similarity index 100% rename from docs/tools.rst rename to website/tools.rst