### Build Wiiuse Example Application Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/example/CMakeLists.txt Configures the build to include necessary directories, add the executable, and link against the wiiuse library. It also handles installation if examples are enabled. ```cmake include_directories(../src) add_executable(wiiuseexample example.c) target_link_libraries(wiiuseexample wiiuse) if(INSTALL_EXAMPLES) install(TARGETS wiiuseexample RUNTIME DESTINATION bin COMPONENT examples) endif() ``` -------------------------------- ### Install Markdown Target with UseMarkdown Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.txt Use this to install a markdown target. It accepts extra arguments for the INSTALL(FILES ...) command. ```cmake install_markdown_target( [extra arguments to INSTALL(FILES ...) ]) ``` -------------------------------- ### Install SuperTuxKart System-Wide Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the compiled SuperTuxKart build to the system. The default installation location is /usr/local. ```bash sudo make install ``` -------------------------------- ### Install Markdown Target with UseMarkdown Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.html Use the `install_markdown_target` function to install the generated HTML files. This function accepts extra arguments for the INSTALL(FILES ...) command. ```cmake install_markdown_target( [extra arguments to INSTALL(FILES ...)]) ``` -------------------------------- ### Install Networking Dependencies on RHEL/CentOS 7 Source: https://github.com/supertuxkart/stk-code/blob/master/NETWORKING.md Installs wget and then downloads and installs the EPEL release package. Finally, it installs development tools and libraries required for networking. ```bash yum install wget; cd /tmp; wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm; rpm -Uvh epel-release*rpm yum install gcc-c++ cmake openssl-devel libcurl-devel zlib-devel enet ``` -------------------------------- ### Example 14 Link Libraries Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Links with opengl32 and gdi32 libraries in the Example 14 C::B project file. ```cpp ``` -------------------------------- ### Start a Configured Server Source: https://github.com/supertuxkart/stk-code/blob/master/NETWORKING.md After initial configuration, this command can be used to start either a LAN or WAN server using a saved configuration file. Server logs are saved to the STK configuration directory. ```bash supertuxkart --server-config=your_config.xml ``` -------------------------------- ### Wiiuse SDL Example CMake Configuration Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/example-sdl/CMakeLists.txt Configures the build for the wiiuse SDL example. It finds necessary packages like SDL, OpenGL, and GLUT, sets up include directories, defines the executable, and links the required libraries. Conditional logic handles Windows-specific executable creation. ```cmake find_package(SDL) find_package(OpenGL) find_package(GLUT) if(SDL_FOUND AND OPENGL_FOUND AND GLUT_FOUND) include_directories(../src ${SDL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIRS}) if(WIN32) add_executable(wiiuseexample-sdl WIN32 sdl.c) else() add_executable(wiiuseexample-sdl sdl.c) endif() target_link_libraries(wiiuseexample-sdl wiiuse ${SDL_LIBRARY} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES}) if(INSTALL_EXAMPLES) install(TARGETS wiiuseexample-sdl runtime DESTINATION bin COMPONENT examples) endif() endif() ``` -------------------------------- ### Install Dependencies on Solus Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on Solus. ```bash sudo eopkg it cmake openal-soft-devel libogg-devel libvorbis-devel freetype2-devel \ harfbuzz-devel curl-devel bluez-devel openssl-devel libpng-devel zlib-devel \ libjpeg-turbo-devel sdl2-devel enet-devel libjpeg-turbo-devel bluez-devel curl-devel ``` -------------------------------- ### Install Dependencies on openSUSE Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on openSUSE. ```bash sudo zypper install gcc-c++ cmake openssl-devel libcurl-devel libSDL2-devel \ freetype-devel harfbuzz-devel libogg-devel openal-soft-devel libpng-devel \ libvorbis-devel pkgconf zlib-devel enet-devel \ libjpeg-devel bluez-devel freetype2-devel ``` -------------------------------- ### Install Lua Target with install_lua_target Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.html Installs a previously defined Lua target. This function accepts arguments that are passed to the INSTALL(PROGRAMS ...) command. ```cmake install_lua_target( [arguments to INSTALL(PROGRAMS ...)]) ``` -------------------------------- ### Start a LAN Server Source: https://github.com/supertuxkart/stk-code/blob/master/NETWORKING.md Use this command to start a SuperTuxKart server for local area networks. It requires a server configuration file and a name for your server. ```bash supertuxkart --server-config=your_config.xml --lan-server=your_server_name --network-console ``` -------------------------------- ### Install OSG Plugins Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.txt Installs OpenSceneGraph plugins. Use the output variable to specify filenames. ```cmake install_osg_plugins( {varNameForOutputFilenames} ) ``` -------------------------------- ### Install Opus Dependencies Source: https://github.com/supertuxkart/stk-code/blob/master/OPUS.md Install the libopusfile development library on various operating systems to enable Opus audio support. ```bash # macOS brew install opusfile # Debian/Ubuntu sudo apt install libopusfile-dev # Fedora sudo dnf install opusfile-devel # Arch sudo pacman -S opusfile ``` -------------------------------- ### Install Dependencies on Fedora Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on Fedora. ```bash sudo dnf install @development-tools angelscript-devel \ bluez-libs-devel cmake desktop-file-utils SDL2-devel \ freealut-devel freetype-devel \ gcc-c++ git-core libcurl-devel libjpeg-turbo-devel \ libpng-devel libsquish-devel libtool libvorbis-devel \ openal-soft-devel openssl-devel libcurl-devel harfbuzz-devel \ libogg-devel openssl-devel pkgconf \ wiiuse-devel zlib-devel ``` -------------------------------- ### Example 23 Width and Height Fix Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Corrected a bug in example 23 where the Width and Height parameters were mistakenly swapped. ```cpp void CImageLoaderBMP::writeImage(IWriteFile* file, IImage* image, s32 param) const { // ... other code ... const s32 width = image->getOriginalSize().Width; const s32 height = image->getOriginalSize().Height; // ... other code ... } ``` -------------------------------- ### Install Dependencies on Mageia 6 Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on Mageia 6. ```bash su -c 'urpmi gcc-c++ cmake openssl-devel libcurl-devel freetype-devel harfbuzz-devel \ libjpeg-turbo-devel libogg-devel openal-soft-devel SDL2-devel \ libpng-devel libvorbis-devel nettle-devel zlib-devel git subversion \ libbluez-devel libfreetype6-devel' ``` -------------------------------- ### Configure Windows Installer Icon Resource Source: https://github.com/supertuxkart/stk-code/blob/master/CMakeLists.txt Configures the Windows installer icon resource by copying a template file to a temporary location during the build process. ```cmake if(WIN32) configure_file("${STK_SOURCE_DIR}/../tools/windows_installer/icon_rc.template" "${PROJECT_BINARY_DIR}/tmp/icon.rc") endif() ``` -------------------------------- ### Start SuperTuxKart Server Source: https://github.com/supertuxkart/stk-code/blob/master/NETWORKING.md Launch the SuperTuxKart server using a specified configuration file. The `--network-console` flag enables interactive commands but should not be used with systemd services. ```bash supertuxkart --server-config=your_config.xml --network-console ``` -------------------------------- ### Example 16 Linker Path Fix Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Corrected the linker path in the example 16 C::B project file, which was incorrectly placed in the include path section. ```cpp ``` -------------------------------- ### Use System Installed Libraries Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Define these preprocessor macros to use system-installed libraries instead of those bundled with Irrlicht. They are defined by default in IrrCompileConfig.h. ```cpp #define _IRR_USE_NON_SYSTEM_JPEG_LIB_ #define _IRR_USE_NON_SYSTEM_LIB_PNG_ #define _IRR_USE_NON_SYSTEM_ZLIB_ ``` -------------------------------- ### Initiate ENet Connection Source: https://github.com/supertuxkart/stk-code/blob/master/lib/enet/tutorial.txt Use this code to set up an ENet address and initiate a connection to a server. Ensure you have allocated sufficient channels for communication. The function returns a peer object or NULL if no peers are available. ```c ENetAddress address; ENetEvent event; ENetPeer *peer; /* Connect to some.server.net:1234. */ enet_address_set_host (& address, "some.server.net"); address.port = 1234; /* Initiate the connection, allocating the two channels 0 and 1. */ peer = enet_host_connect (client, & address, 2); if (peer == NULL) { fprintf (stderr, "No available peers for initiating an ENet connection.\n"); exit (EXIT_FAILURE); } /* Wait up to 5 seconds for the connection attempt to succeed. if (enet_host_service (client, & event, 5000) > 0 && event.type == ENET_EVENT_TYPE_CONNECT) { puts ("Connection to some.server.net:1234 succeeded."); ... ... ... } else { /* Either the 5 seconds are up or a disconnect event was * received. Reset the peer in the event the 5 seconds * had run out without any significant event. */ enet_peer_reset (peer); puts ("Connection to some.server.net:1234 failed."); } ... ``` -------------------------------- ### Create an ENet Server Host Source: https://github.com/supertuxkart/stk-code/blob/master/lib/enet/tutorial.txt Use enet_host_create() to create a server. Specify the address to bind to, the maximum number of peers, and optional bandwidth limits. Use enet_host_destroy() to free resources when done. ```c ENetAddress address; ENetHost * server; /* Bind the server to the default localhost. * A specific host address can be specified by * enet_address_set_host (& address, "x.x.x.x"); */ address.host = ENET_HOST_ANY; /* Bind the server to port 1234. */ address.port = 1234; server = enet_host_create (& address /* the address to bind the server host to */, 32 /* allow up to 32 clients and/or outgoing connections */, 0 /* assume any amount of incoming bandwidth */, 0 /* assume any amount of outgoing bandwidth */); if (server == NULL) { fprintf (stderr, "An error occurred while trying to create an ENet server host.\n"); exit (EXIT_FAILURE); } ... ... ... enet_host_destroy(server); ``` -------------------------------- ### Find Last Character in IrrString with Start Position Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Searches for the last occurrence of a character in an irrstring starting from a specified position. The start parameter is checked against boundaries. ```cpp irrstring: added param start to findLast(T c, s32 start = -1 ) ``` -------------------------------- ### Initialize User Account Source: https://github.com/supertuxkart/stk-code/blob/master/NETWORKING.md Run this command to initialize your STK user account for online play. Ensure you replace 'your_registered_name' and 'your_password' with your actual credentials. ```bash supertuxkart --init-user --login=your_registered_name --password=your_password ``` -------------------------------- ### Create an ENet Client Host Source: https://github.com/supertuxkart/stk-code/blob/master/lib/enet/tutorial.txt Use enet_host_create() for clients, passing NULL for the address. Specify the maximum number of outgoing connections and optional bandwidth limits. Use enet_host_destroy() to free resources when done. ```c ENetHost * client; clienet = enet_host_create (NULL /* create a client host */, 1 /* only allow 1 outgoing connection */, 57600 / 8 /* 56K modem with 56 Kbps downstream bandwidth */, 14400 / 8 /* 56K modem with 14 Kbps upstream bandwidth */); if (client == NULL) { fprintf (stderr, "An error occurred while trying to create an ENet client host.\n"); exit (EXIT_FAILURE); } ... ... ... enet_host_destroy(client); ``` -------------------------------- ### Configure Mojoal Static Library Source: https://github.com/supertuxkart/stk-code/blob/master/lib/mojoal/CMakeLists.txt Defines include directories for SDL2 and the local Mojoal source, then builds the Mojoal library as a static archive. ```cmake include_directories("${SDL2_INCLUDEDIR}") include_directories("${PROJECT_SOURCE_DIR}/lib/mojoal") add_library(mojoal STATIC mojoal.c ) ``` -------------------------------- ### Install Dependencies on Debian-based Distributions Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on Debian and similar distributions. ```bash sudo apt-get install build-essential cmake libbluetooth-dev libsdl2-dev \ libcurl4-openssl-dev libenet-dev libfreetype6-dev libharfbuzz-dev \ libjpeg-dev libogg-dev libopenal-dev libpng-dev \ libssl-dev libvorbis-dev libmbedtls-dev pkg-config zlib1g-dev ``` -------------------------------- ### Setting a Custom GUI Skin in Irrlicht Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Demonstrates how to set a custom GUI skin by creating a new skin object and applying it to the environment. Remember to drop the skin object after setting it. ```cpp gui::IGUISkin* newskin = environment->createSkin(gui::EGST_WINDOWS_CLASSIC); environment->setSkin(newskin); newskin->drop(); ``` -------------------------------- ### Specify Custom Installation Prefix Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Changes the default installation location for SuperTuxKart by setting CMAKE_INSTALL_PREFIX when running CMake. ```bash cmake .. -DCMAKE_INSTALL_PREFIX=/opt/stk ``` -------------------------------- ### Install Dependencies on Arch-based Distributions Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Installs the required packages for building SuperTuxKart on Arch Linux and similar distributions. ```bash sudo pacman -S openal libogg libvorbis freetype2 harfbuzz curl \ bluez-libs openssl libpng zlib libjpeg-turbo sdl2 gcc cmake \ pkgconf make git subversion ``` -------------------------------- ### CreateLaunchers Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.txt Provides functions to create launchers for targets, setting working directories, environment variables, and arguments. ```APIDOC ## CreateLaunchers ### Description This module provides functions to create launchers for targets. These launchers can set the working directory, environment variables, and pass arguments. ### Usage ```cmake include(CreateLaunchers) ``` ### Functions #### guess_runtime_library_dirs ```cmake guess_runtime_library_dirs( [ ...]) ``` #### create_default_target_launcher ```cmake create_default_target_launcher( [ARGS ] [FORWARD_ARGS] [RUNTIME_LIBRARY_DIRS ] [WORKING_DIRECTORY ] [ENVIRONMENT [...]]) ``` #### create_target_launcher ```cmake create_target_launcher( [ARGS ] [FORWARD_ARGS] [RUNTIME_LIBRARY_DIRS ] [WORKING_DIRECTORY ] [ENVIRONMENT [...]]) ``` #### create_generic_launcher ```cmake create_generic_launcher( [RUNTIME_LIBRARY_DIRS ] [WORKING_DIRECTORY ] [ENVIRONMENT [...]]) ``` - Sets `GENERIC_LAUNCHER_COMMAND` and `GENERIC_LAUNCHER_FAIL_REGULAR_EXPRESSION`. ``` -------------------------------- ### Create Build Directory Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Navigate to the SuperTuxKart source directory and create a 'build' directory for compilation artifacts. ```bash mkdir build cd build ``` -------------------------------- ### Example 21 Compilation Fix Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Adjusted include order to resolve compilation issues with MinGW in example 21. ```cpp #include #include #ifdef _MSC_VER #pragma comment(lib, "Irrlicht.lib"); #endif using namespace irr; int main() { video::E_DRIVER_TYPE driverType = video::EDT_OPENGL; // create device IrrlichtDevice *device = createDevice(driverType, core::dimension2d(640, 480)); if (!device) return 1; video::IVideoDriver* driver = device->getVideoDriver(); ISceneManager* smgr = device->getSceneManager(); IGUIEnvironment* guienv = device->getGUIEnvironment(); smgr->addSkyBoxSceneNode(); smgr->addCameraSceneNodeFPS(); // add a cube scene::ISceneNode* node = smgr->addCubeSceneNode(10); if (node) { node->setPosition(core::vector3df(0,5,-15)); node->setMaterialFlag(video::EMF_LIGHTING, false); } // add a light smgr->addLightSceneNode(0, core::vector3df(0,10,0), video::SColorf(1.0f, 1.0f, 1.0f, 1.0f), 100.0f); int lastFPS = -1; while(device->run()) { core::stringw str = L"SuperTuxKart Irrlicht Example 21 - " ; str += "FPS: "; str += driver->getFPS(); device->setWindowCaption(str.c_str()); driver->beginScene(true, true, video::SColor(0,200,200,200)); smgr->drawAll(); guienv->drawAll(); driver->endScene(); int fps = driver->getFPS(); if (lastFPS != fps) { //printf("%d\n", fps); lastFPS = fps; } } device->drop(); return 0; } ``` -------------------------------- ### Create an ENet Client Host Source: https://github.com/supertuxkart/stk-code/blob/master/lib/enet/docs/tutorial.dox Creates an ENet host configured as a client. When NULL is provided for the address, it functions as a client. Limits for outgoing connections and channels can be set, along with optional bandwidth specifications. The host should be destroyed when no longer needed. ```c ENetHost * client; client = enet_host_create (NULL /* create a client host */, 1 /* only allow 1 outgoing connection */, 2 /* allow up 2 channels to be used, 0 and 1 */, 0 /* assume any amount of incoming bandwidth */, 0 /* assume any amount of outgoing bandwidth */); if (client == NULL) { fprintf (stderr, "An error occurred while trying to create an ENet client host.\n"); exit (EXIT_FAILURE); } ... ... ... enet_host_destroy(client); ``` -------------------------------- ### Configure and Build SuperTuxKart (macOS) Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Commands to navigate to the SuperTuxKart source directory, create a build directory, configure the build with CMake using local dependencies, and then compile the project using make on macOS. ```bash cd /path/to/stk-code mkdir cmake_build cd cmake_build cmake .. -DCMAKE_FIND_ROOT_PATH=$(pwd)/../dependencies-macosx -DUSE_CRYPTO_OPENSSL=FALSE make ``` -------------------------------- ### Configure SuperTuxKart Build with CMake (Windows) Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Run this CMake command in the build directory to configure the SuperTuxKart build on Windows using Ninja and a specific LLVM toolchain. Ensure LLVM and Ninja are correctly prefixed. ```cmd cmake .. -G Ninja -DLLVM_ARCH="x86_64" -DLLVM_PREFIX=C:\llvm-mingw -DCMAKE_MAKE_PROGRAM=C:\llvm-mingw\ninja.exe -DUSE_WIIUSE=OFF -DCMAKE_TOOLCHAIN_FILE="../cmake/Toolchain-llvm-mingw.cmake" ``` -------------------------------- ### FileCopyTargets Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.html Provides functions to create custom targets for copying files and installing them. ```APIDOC ## FileCopyTargets ### Description Provides functions to create custom targets for copying files and installing them. ### Usage ```cmake include(FileCopyTargets) add_file_copy_target( [...]) install_file_copy_target( [arguments to INSTALL(PROGRAMS ...)]) ``` ### Details `add_file_copy_target` creates a custom target that copies specified files to a directory. Relative paths for the destination directory are considered with respect to CMAKE_CURRENT_BINARY_DIR. This target can be used with `add_dependencies`. `install_file_copy_target` wraps `INSTALL(PROGRAMS ...)` to install the files specified in `add_file_copy_target`. ``` -------------------------------- ### Create an ENet Server Host Source: https://github.com/supertuxkart/stk-code/blob/master/lib/enet/docs/tutorial.dox Creates an ENet host configured as a server, binding it to a specific address and port, and setting limits on connected peers and channels. Bandwidth can be optionally specified. The host should be destroyed when no longer needed. ```c ENetAddress address; ENetHost * server; /* Bind the server to the default localhost. */ /* A specific host address can be specified by */ /* enet_address_set_host (& address, "x.x.x.x"); */ address.host = ENET_HOST_ANY; /* Bind the server to port 1234. */ address.port = 1234; server = enet_host_create (& address /* the address to bind the server host to */, 32 /* allow up to 32 clients and/or outgoing connections */, 2 /* allow up to 2 channels to be used, 0 and 1 */, 0 /* assume any amount of incoming bandwidth */, 0 /* assume any amount of outgoing bandwidth */); if (server == NULL) { fprintf (stderr, "An error occurred while trying to create an ENet server host.\n"); exit (EXIT_FAILURE); } ... ... ... enet_host_destroy(server); ``` -------------------------------- ### Rename CVideo* Files Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Internal filenames starting with CVideo* have been renamed to align with other naming conventions, e.g., CD3D9Driver.h. ```cpp Lots of internal filenames have been renamed. All CVideo* files have been renamed to fit the other name conventions, CD3D9Driver.h into CD3D9Driver.h for example. ``` -------------------------------- ### Configure Fog Parameters Source: https://github.com/supertuxkart/stk-code/blob/master/doc/graphics_xml.txt Set fog density, start height, and end height. 'fog-max' caps fog amount (default 1.0), 'fog-start-height' sets minimum fog height (default 0.0), and 'fog-end-height' sets maximum fog height (default 100.0). ```xml fog-max: float capping the amount of fog to apply, default 1.0. ``` ```xml fog-start-height: minimum height of fog, default 0.0. ``` ```xml fog-end-height: maximum height of fog, default 100.0. ``` -------------------------------- ### Get Scene Collision Manager Source: https://github.com/supertuxkart/stk-code/blob/master/lib/irrlicht/changes.txt Retrieves the scene collision manager from the scene manager. Currently supports picking. ```cpp ISceneManager::getSceneCollisionManager(); ``` -------------------------------- ### Configure Build with CMake (Visual Studio) Source: https://github.com/supertuxkart/stk-code/blob/master/INSTALL.md Use CMake to configure the build environment for Visual Studio. Ensure you are in the 'build' directory. ```bash cmake .. ``` -------------------------------- ### GetForceIncludeDefinitions Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.txt Gets the platform-appropriate flags to add to force inclusion of a file, often used for generated config.h-type files. ```APIDOC ## GetForceIncludeDefinitions ### Description Get the platform-appropriate flags to add to force inclusion of a file. The most common use of this is to use a generated config.h-type file placed out of the source tree in all files. ### Syntax ```cmake get_force_include_definitions(var forcedincludefiles...) ``` ### Parameters - **var**: The name of your desired output variable. - **forcedincludefiles**: Source files to forcibly include. ``` -------------------------------- ### DoxygenTargets Source: https://github.com/supertuxkart/stk-code/blob/master/lib/wiiuse/cmake/module-help.html Adds a custom target to run Doxygen on source files, with options for output directory, installation, and PDF generation. ```APIDOC ## DoxygenTargets ### Description Runs doxygen on source files as a custom target. ### Usage ```cmake include(DoxygenTargets) add_doxygen( [OUTPUT_DIRECTORY ] [INSTALL_DESTINATION [INSTALL_COMPONENT ] [INSTALL_PDF_NAME ]] [DOC_TARGET ] [PROJECT_NUMBER ] [NO_WARNINGS] [NO_PDF]) ``` ### Parameters * ``: The Doxygen configuration file. * `[OUTPUT_DIRECTORY ]`: The directory where Doxygen output will be placed. * `[INSTALL_DESTINATION ]`: The destination directory for installation. * `[INSTALL_COMPONENT ]`: The installation component name. * `[INSTALL_PDF_NAME ]`: The name for the installed PDF file. * `[DOC_TARGET ]`: The name of the custom target. * `[PROJECT_NUMBER ]`: The project version number. * `[NO_WARNINGS]`: Suppress Doxygen warnings. * `[NO_PDF]`: Do not generate a PDF. ```