-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TODOS for fully featured CMake Build System #954
Comments
Regarding documentation, I already provided a basic (incomplete but better than nothing) wiki page file in #929 (grep for |
I believe that with what is already currently in |
Thanks for reminding! Has been incorporated: https://github.com/DLR-AMR/t8code/wiki/Installation#build-t8code-with-cmake |
There is a |
I would also add the documentation building to the list. My project is based on CMake and uses t8code. To generate the API documentation for my project, I use Doxygen. It is a build target, so I just have to type |
I would also add to the list the documentation building. My project is based on CMake and uses t8code. To generate the API documentation for my project, I use Doxygen. It is a build target, so I just have to type `make docs` to regenerate the HTML output of the documentation. I can share my CMakeFiles.txt if you want.
In the autoconf system we use `make doxygen`. There is by now a good
working structure in p4est and libsc using doc and doc/doxygen. Would it
be synergetic to align the t8code doxygen generation by CMake analogously?
|
That I don't know. I am not a core developer of t8code, so I just propose ideas. @jmark could answer this question better. |
@CsatiZoltan Thank you for bringing up this suggestion! Is added to the list! You can send me the lines from your @cburstedde Your suggestions using doxygen sounds reasonable! If you allow to do so I'll take inspiration from the documentation structure in libsc and p4est. I think there already is a doxygen infrastructure in t8code. I'll check it out and report back. |
My main CMakeList.txt (minor modifications added to this code): cmake_minimum_required(VERSION 3.12.0) # VTK requires CMake 3.12 in order to reliably be used
project(PROJ DESCRIPTION "Your project description" VERSION 0.1.0 LANGUAGES C CXX)
add_subdirectory(examples)
add_subdirectory(tests)
# Documentation
find_package(Doxygen)
if(DOXYGEN_FOUND)
set(PROJ ${CMAKE_CURRENT_SOURCE_DIR})
set(PROJ_SRC ${PROJ}/src)
set(PROJ_DOC ${PROJ}/docs)
set(PROJ_EXAMPLES ${PROJ}/examples)
# set input and output files
set(DOXYGEN_IN ${PROJ_DOC}/Doxyfile.in)
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.out)
# request to configure the file
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
message("Doxygen build started")
# Note: do not put "ALL" - this builds docs together with application EVERY TIME!
add_custom_target(docs
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM)
else(DOXYGEN_FOUND)
message("Doxygen need to be installed to generate the doxygen documentation")
endif(DOXYGEN_FOUND) To make sure that the user or the CI uses a recent-enough Doxygen (older versions may not have the keywords that you expect), you can check for a minimum version. My Doxyfile.in fetches the values of the environment variables that exist when the cmake build is called. Relevant entries:
|
A non-exhaustive list of open todos for the still experimental cmake build system in t8code:
OCC
optionCMakeLists.txt
files. Maybe adapt the structure as done in libsc/p4est.The text was updated successfully, but these errors were encountered: