From 96557465c225f4c95be27a7d2af586a210b5c624 Mon Sep 17 00:00:00 2001 From: Rebekah Rowe Date: Mon, 4 Apr 2022 14:41:04 -0400 Subject: [PATCH] Added doxygen build support --- CMakeLists.txt | 83 ++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ff15d59..8657ebc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,45 +7,46 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS true) +find_package(Doxygen) find_package(ImageMagick REQUIRED COMPONENTS convert identify ) #if (NOT ImageMagick_idenity_FOUND) #message(FATAL "Please install imagemagick identify") function(CommandConvertImageToRgba file_in) - cmake_path(GET file_in FILENAME filename) - cmake_path(GET file_in PARENT_PATH filepath) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba - WORKING_DIRECTORY ${filepath} - COMMAND ${ImageMagick_convert_EXECUTABLE} - ARGS ${filename} -depth 8 -format rgba ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba - DEPENDS ${file_in} - POST_BUILD) - set(FUNC_RET ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba PARENT_SCOPE) + cmake_path(GET file_in FILENAME filename) + cmake_path(GET file_in PARENT_PATH filepath) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba + WORKING_DIRECTORY ${filepath} + COMMAND ${ImageMagick_convert_EXECUTABLE} + ARGS ${filename} -depth 8 -format rgba ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba + DEPENDS ${file_in} + POST_BUILD) + set(FUNC_RET ${CMAKE_CURRENT_BINARY_DIR}/${filename}.rgba PARENT_SCOPE) endfunction() function(CommandConvertToObjcopy file_in) - cmake_path(GET file_in FILENAME filename) - cmake_path(GET file_in PARENT_PATH filepath) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${filename}.o + cmake_path(GET file_in FILENAME filename) + cmake_path(GET file_in PARENT_PATH filepath) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${filename}.o WORKING_DIRECTORY ${filepath} COMMAND ${CMAKE_OBJCOPY} ARGS --input binary --output elf64-x86-64 --binary-architecture i386 ${filename} ${CMAKE_CURRENT_BINARY_DIR}/${filename}.o DEPENDS ${file_in} POST_BUILD) - set(FUNC_RET ${CMAKE_CURRENT_BINARY_DIR}/${filename}.o PARENT_SCOPE) + set(FUNC_RET ${CMAKE_CURRENT_BINARY_DIR}/${filename}.o PARENT_SCOPE) endfunction() function(CommandConvertImageToObject file_in) - CommandConvertImageToRgba("${file_in}") - CommandConvertToObjcopy(${FUNC_RET}) - set(FUNC_RET ${FUNC_RET} PARENT_SCOPE) + CommandConvertImageToRgba("${file_in}") + CommandConvertToObjcopy(${FUNC_RET}) + set(FUNC_RET ${FUNC_RET} PARENT_SCOPE) endfunction() function(EmbedResources) - set(EMBED_HEADER_DIR "${CMAKE_CURRENT_BINARY_DIR}/") - set(EMBED_HEADER_DIR "${EMBED_HEADER_DIR}" PARENT_SCOPE) - file(WRITE "${EMBED_HEADER_DIR}/embed_resources.hpp" " + set(EMBED_HEADER_DIR "${CMAKE_CURRENT_BINARY_DIR}/") + set(EMBED_HEADER_DIR "${EMBED_HEADER_DIR}" PARENT_SCOPE) + file(WRITE "${EMBED_HEADER_DIR}/embed_resources.hpp" " /* AUTOGENERATED CMAKE EMBEDED FILE HEADER!!! DO NOT EDIT THIS FILE!!! ALL CHANGES WILL BE WIPED!!! */ #include @@ -72,21 +73,21 @@ public: }; ") - set(EMBED_OBJ_RET "") - foreach(file_path ${ARGV}) - cmake_path(GET file_path EXTENSION LAST_ONLY file_ext) - set(type "embed") - if (file_ext STREQUAL ".jpg") - set(type "image") - endif() - if (file_ext STREQUAL ".png") - set(type "image") - endif() + set(EMBED_OBJ_RET "") + foreach(file_path ${ARGV}) + cmake_path(GET file_path EXTENSION LAST_ONLY file_ext) + set(type "embed") + if (file_ext STREQUAL ".jpg") + set(type "image") + endif() + if (file_ext STREQUAL ".png") + set(type "image") + endif() - if (type STREQUAL "image") - CommandConvertImageToObject(${file_path}) - elseif (type STREQUAL "embed") - CommandConvertToObjcopy(${file_path}) + if (type STREQUAL "image") + CommandConvertImageToObject(${file_path}) + elseif (type STREQUAL "embed") + CommandConvertToObjcopy(${file_path}) endif() list(APPEND EMBED_OBJ_RET "${FUNC_RET}") @@ -119,6 +120,10 @@ file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") add_library(libpdraw STATIC ${EMBED_OBJ_RET} ${sources}) target_include_directories(libpdraw PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/src/" "${CMAKE_CURRENT_SOURCE_DIR}/include/libpdraw" "${EMBED_HEADER_DIR}") +if (DOXYGEN_FOUND) + doxygen_add_docs(libpdraw-docs) +endif() + # Example using xoverlay set(OpenGL_GL_PREFERENCE "GLVND") find_package(PNG) # We need to link all this again since we prebuilt them staticly @@ -127,14 +132,14 @@ find_package(OpenGL) find_package(X11) find_package(Freetype) if(PNG_FOUND AND GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND FREETYPE_FOUND) - project (example) + project (example) - file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/example-src/*.c*") - add_executable(example ${sources}) + file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/example-src/*.c*") + add_executable(example ${sources}) - target_include_directories(example PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/include/") - target_link_libraries(example libpdraw + target_include_directories(example PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/include/") + target_link_libraries(example libpdraw "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/libxoverlay.a" - glez + glez ${PNG_LIBRARIES} GL GLU GLEW ${FREETYPE_LIBRARIES} ${X11_X11_LIB} ${X11_Xext_LIB} ${X11_Xfixes_LIB}) endif()