Added doxygen build support
This commit is contained in:
parent
065885b3f2
commit
96557465c2
@ -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 <cstddef>
|
||||
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user