cmake: Improve Findugfx.cmake

This commit is contained in:
Joel Bodenmann 2021-11-03 20:01:47 +01:00
parent 0f11538656
commit 6b621ca6b8
2 changed files with 34 additions and 34 deletions

View File

@ -6,8 +6,8 @@ if(NOT UGFX_ROOT)
message(FATAL_ERROR "No UGFX_ROOT specified")
endif()
# Assemble list of components
list(APPEND ugfx_COMPONENTS
# Assemble list of built-in components
list(APPEND ugfx_COMPONENTS_BUILTIN
gadc
gaudio
gdisp
@ -34,13 +34,15 @@ list(APPEND ugfx_INCLUDE_DIRS
${UGFX_ROOT}/src
)
# Include each component
foreach(component ${ugfx_COMPONENTS})
# Include each built-in component
foreach(component ${ugfx_COMPONENTS_BUILTIN})
include(${UGFX_ROOT}/src/${component}/${component}.cmake)
endforeach()
# Include target setup for ease-of-use
include(${CMAKE_CURRENT_LIST_DIR}/target_setup.cmake)
# Include user specified components
foreach(component ${ugfx_FIND_COMPONENTS})
include(${UGFX_ROOT}/${component}/driver.cmake)
endforeach()
# Remove duplicates from non-cached variables
list(REMOVE_DUPLICATES ugfx_SOURCES)
@ -48,4 +50,29 @@ list(REMOVE_DUPLICATES ugfx_INCLUDE_DIRS)
# Outsource heavy-lifting to cmake
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ugfx DEFAULT_MSG)
find_package_handle_standard_args(ugfx DEFAULT_MSG UGFX_ROOT ugfx_SOURCES ugfx_INCLUDE_DIRS)
# Create the target
add_library(ugfx INTERFACE IMPORTED)
target_include_directories(
ugfx
INTERFACE
${ugfx_INCLUDE_DIRS}
)
target_sources(
ugfx
INTERFACE
${ugfx_SOURCES}
)
target_compile_definitions(
ugfx
INTERFACE
${ugfx_DEFS}
)
target_link_libraries(
ugfx
INTERFACE
${ugfx_LIBS}
)

View File

@ -1,27 +0,0 @@
function(ugfx_target_setup TARGET)
target_include_directories(
${TARGET}
PRIVATE
${ugfx_INCLUDE_DIRS}
)
target_sources(
${TARGET}
PRIVATE
${ugfx_SOURCES}
)
target_compile_definitions(
${TARGET}
PRIVATE
${ugfx_DEFS}
)
target_link_libraries(
${TARGET}
PRIVATE
${ugfx_LIBS}
)
endfunction()