diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 787b10cb7..58872453a 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,14 +15,20 @@ jobs: gh-pages: runs-on: ubuntu-latest steps: - - uses: ssciwr/doxygen-install@v1 - - uses: symbitic/install-cmake@master - - run: mkdir _build - - run: cd _build - - run: cmake .. - - run: cmake --build . --target doc + - uses: actions/checkout@v3 + - run: sudo apt-get update + - run: sudo apt-get install -y cmake make doxygen graphviz + - name: cmake + working-directory: ./doc + run: cmake . + - name: build docs + working-directory: ./doc + run: cmake --build . - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 + if: success() + uses: crazy-max/ghaction-github-pages@v3 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/html # Build output to publish to the `gh-pages` branch \ No newline at end of file + target_branch: gh-pages + build_dir: ./doc/html + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6f4861ab9..01c7a7f4f 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,12 @@ cmake_install.cmake config.h ginga.cbp *.DS_Store +build.ninja +.ninja_deps +.ninja_log +doc/CMakeDoxyfile.in +doc/CMakeDoxygenDefaults.cmake +doc/Makefile *.a *.bak *.core diff --git a/CMakeLists.defs.txt b/CMakeLists.defs.txt new file mode 100644 index 000000000..5f44dcd43 --- /dev/null +++ b/CMakeLists.defs.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.2) +project(ginga) +set(PACKAGE "ginga") +set(PACKAGE_URL "http://github.com/telemidia/ginga") +set(PACKAGE_BUGREPORT "bugs@telemidia.puc-rio.br") +set(PACKAGE_DESCRIPTION "The Ginga iTV middleware") +set(VERSION 1.0) +set(PACKAGE_VERSION ${VERSION}) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build-cmake/CMakeModules) +set(DISPLAY_NAME "Ginga") +set(DESCRIPTION "Ginga is the iTV middleware of the Japanese-Brazilian Digital TV System (ISDB-TB) and ITU-T Recommendation for IPTV services. Ginga is made up by a set of standardized technologies and Brazilian innovations that make it the most advanced middleware specification.") \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index fdbcda7cd..5c7b5670b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,10 @@ cmake_minimum_required(VERSION 3.2) project(ginga) +include(CMakeLists.defs.txt) cmake_policy(SET CMP0087 NEW) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_compile_options(-Wno-deprecated-declarations) -set(PACKAGE "ginga") -set(PACKAGE_URL "http://github.com/telemidia/ginga") -set(PACKAGE_BUGREPORT "bugs@telemidia.puc-rio.br") -set(PACKAGE_DESCRIPTION "The Ginga iTV middleware") -set(VERSION 1.0) -set(PACKAGE_VERSION ${VERSION}) -set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build-cmake/CMakeModules) - # set all target runtime to CMAKE_BINARY_DIR set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -315,22 +308,6 @@ foreach(SRC ${GINGA_TESTS_SRC}) endif() endforeach() -# ------------------------ -# doxygen documentation -# ------------------------ -find_package(Doxygen) - -if(DOXYGEN_FOUND) - set(top_builddir ${CMAKE_CURRENT_BINARY_DIR}) - set(top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in - ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY) - add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doc/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc - COMMENT "Generating API documentation with Doxygen" VERBATIM - ) -endif() - # ------------------------ # install # ------------------------ @@ -418,8 +395,6 @@ configure_file (${CMAKE_CURRENT_SOURCE_DIR}/build-cmake/config.h.in ${CMAKE_BINA # ------------------------ # cpack # ------------------------ -set(DISPLAY_NAME "Ginga") -set(DESCRIPTION "Ginga is the iTV middleware of the Japanese-Brazilian Digital TV System (ISDB-TB) and ITU-T Recommendation for IPTV services. Ginga is made up by a set of standardized technologies and Brazilian innovations that make it the most advanced middleware specification.") set(CPACK_PACKAGE_VENDOR "TeleMídia Lab/PUC-Rio") set(CPACK_PACKAGE_VERSION ${VERSION}) set(CPACK_PACKAGE_CONTACT alan@telemidia.puc-rio.br) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 000000000..d0d5f0809 --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.2) +project(ginga-docs LANGUAGES NONE) +# include common defs +include ("../CMakeLists.defs.txt") +# disable cpp checking +set(CMAKE_C_COMPILER_FORCED FALSE) +set(CMAKE_CXX_COMPILER_FORCED FALSE) + +# doxygen targe +set(DOXYGEN_PROJECT_NAME ${PACKAGE}) +find_package(Doxygen) +set (DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +configure_file(Doxyfile.in Doxyfile @ONLY) +add_custom_target(doc ALL ${DOXYGEN_EXECUTABLE} ${DOC_DIR}/Doxyfile + WORKING_DIRECTORY ${DOC_DIR} + COMMENT "Generating API documentation with Doxygen" VERBATIM +) \ No newline at end of file diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index ee7178c44..ff7f88b82 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -6,21 +6,23 @@ GENERATE_LATEX = NO GENERATE_MAN = NO GENERATE_RTF = NO GENERATE_TREEVIEW = YES +HAVE_DOT = YES -OUTPUT_DIRECTORY = @top_builddir@/doc -INPUT = @top_srcdir@/doc/index.doxygen \ - @top_srcdir@/lib +OUTPUT_DIRECTORY = @DOC_DIR@ +INPUT = index.doxygen @DOC_DIR@/../lib RECURSIVE = YES FILE_PATTERNS = *.cpp *.h EXCLUDE_PATTERNS = */aux-gl.h */aux-glib.h */aux-lua.h */config.h -IMAGE_PATH = @top_srcdir@/doc +IMAGE_PATH = @DOC_DIR@ HAVE_DOT = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES -INCLUDE_PATH = @top_srcdir@/lib +INCLUDE_PATH = @DOC_DIR@/../lib PREDEFINED = unused(x)=x EXTRACT_PRIVATE = YES -QUIET = NO -WARNINGS = YES -WARN_NO_PARAMDOC = YES +QUIET = YES +WARNINGS = NO +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = NO +WARN_NO_PARAMDOC = NO \ No newline at end of file