Initial cmake build scripts.
This commit is contained in:
parent
c68dceb189
commit
ab76dcd087
2 changed files with 278 additions and 0 deletions
184
CMakeLists.txt
Normal file
184
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
add_library(lib_ui OBJECT)
|
||||
init_target(lib_ui)
|
||||
|
||||
include(cmake/generate_styles.cmake)
|
||||
|
||||
get_filename_component(src_loc . REALPATH)
|
||||
|
||||
set(style_files
|
||||
ui/basic.style
|
||||
ui/layers/layers.style
|
||||
ui/widgets/widgets.style
|
||||
)
|
||||
|
||||
generate_palette(lib_ui ui/colors.palette)
|
||||
generate_styles(lib_ui ${src_loc} "${style_files}" ui/colors.palette)
|
||||
generate_emoji(lib_ui emoji_suggestions/emoji_autocomplete.json)
|
||||
|
||||
set(lib_ui_sources
|
||||
PRIVATE
|
||||
${style_files}
|
||||
ui/colors.palette
|
||||
emoji_suggestions/emoji_autocomplete.json
|
||||
|
||||
ui/effects/animation_value.cpp
|
||||
ui/effects/animation_value.h
|
||||
ui/effects/animations.cpp
|
||||
ui/effects/animations.h
|
||||
ui/effects/cross_animation.cpp
|
||||
ui/effects/cross_animation.h
|
||||
ui/effects/fade_animation.cpp
|
||||
ui/effects/fade_animation.h
|
||||
ui/effects/numbers_animation.cpp
|
||||
ui/effects/numbers_animation.h
|
||||
ui/effects/panel_animation.cpp
|
||||
ui/effects/panel_animation.h
|
||||
ui/effects/radial_animation.cpp
|
||||
ui/effects/radial_animation.h
|
||||
ui/effects/ripple_animation.cpp
|
||||
ui/effects/ripple_animation.h
|
||||
ui/effects/slide_animation.cpp
|
||||
ui/effects/slide_animation.h
|
||||
ui/image/image_prepare.cpp
|
||||
ui/image/image_prepare.h
|
||||
ui/layers/box_content.cpp
|
||||
ui/layers/box_content.h
|
||||
ui/layers/box_layer_widget.cpp
|
||||
ui/layers/box_layer_widget.h
|
||||
ui/layers/generic_box.cpp
|
||||
ui/layers/generic_box.h
|
||||
ui/layers/layer_manager.cpp
|
||||
ui/layers/layer_manager.h
|
||||
ui/layers/layer_widget.cpp
|
||||
ui/layers/layer_widget.h
|
||||
ui/platform/linux/ui_window_linux.cpp
|
||||
ui/platform/linux/ui_window_linux.h
|
||||
ui/platform/linux/ui_utility_linux.cpp
|
||||
ui/platform/linux/ui_utility_linux.h
|
||||
ui/platform/mac/ui_window_mac.h
|
||||
ui/platform/mac/ui_window_mac.mm
|
||||
ui/platform/mac/ui_window_title_mac.h
|
||||
ui/platform/mac/ui_window_title_mac.mm
|
||||
ui/platform/mac/ui_utility_mac.h
|
||||
ui/platform/mac/ui_utility_mac.mm
|
||||
ui/platform/win/ui_window_shadow_win.cpp
|
||||
ui/platform/win/ui_window_shadow_win.h
|
||||
ui/platform/win/ui_window_title_win.cpp
|
||||
ui/platform/win/ui_window_title_win.h
|
||||
ui/platform/win/ui_window_win.cpp
|
||||
ui/platform/win/ui_window_win.h
|
||||
ui/platform/win/ui_utility_win.cpp
|
||||
ui/platform/win/ui_utility_win.h
|
||||
ui/platform/ui_platform_window.h
|
||||
ui/platform/ui_platform_utility.h
|
||||
ui/style/style_core.cpp
|
||||
ui/style/style_core.h
|
||||
ui/style/style_core_color.cpp
|
||||
ui/style/style_core_color.h
|
||||
ui/style/style_core_direction.cpp
|
||||
ui/style/style_core_direction.h
|
||||
ui/style/style_core_font.cpp
|
||||
ui/style/style_core_font.h
|
||||
ui/style/style_core_icon.cpp
|
||||
ui/style/style_core_icon.h
|
||||
ui/style/style_core_scale.cpp
|
||||
ui/style/style_core_scale.h
|
||||
ui/style/style_core_types.cpp
|
||||
ui/style/style_core_types.h
|
||||
ui/text/text.cpp
|
||||
ui/text/text.h
|
||||
ui/text/text_block.cpp
|
||||
ui/text/text_block.h
|
||||
ui/text/text_entity.cpp
|
||||
ui/text/text_entity.h
|
||||
ui/text/text_isolated_emoji.h
|
||||
ui/text/text_utilities.cpp
|
||||
ui/text/text_utilities.h
|
||||
ui/toast/toast.cpp
|
||||
ui/toast/toast.h
|
||||
ui/toast/toast_manager.cpp
|
||||
ui/toast/toast_manager.h
|
||||
ui/toast/toast_widget.cpp
|
||||
ui/toast/toast_widget.h
|
||||
ui/widgets/box_content_divider.cpp
|
||||
ui/widgets/box_content_divider.h
|
||||
ui/widgets/buttons.cpp
|
||||
ui/widgets/buttons.h
|
||||
ui/widgets/checkbox.cpp
|
||||
ui/widgets/checkbox.h
|
||||
ui/widgets/dropdown_menu.cpp
|
||||
ui/widgets/dropdown_menu.h
|
||||
ui/widgets/inner_dropdown.cpp
|
||||
ui/widgets/inner_dropdown.h
|
||||
ui/widgets/input_fields.cpp
|
||||
ui/widgets/input_fields.h
|
||||
ui/widgets/labels.cpp
|
||||
ui/widgets/labels.h
|
||||
ui/widgets/menu.cpp
|
||||
ui/widgets/menu.h
|
||||
ui/widgets/popup_menu.cpp
|
||||
ui/widgets/popup_menu.h
|
||||
ui/widgets/scroll_area.cpp
|
||||
ui/widgets/scroll_area.h
|
||||
ui/widgets/shadow.cpp
|
||||
ui/widgets/shadow.h
|
||||
ui/widgets/tooltip.cpp
|
||||
ui/widgets/tooltip.h
|
||||
ui/widgets/window.cpp
|
||||
ui/widgets/window.h
|
||||
ui/wrap/fade_wrap.cpp
|
||||
ui/wrap/fade_wrap.h
|
||||
ui/wrap/padding_wrap.cpp
|
||||
ui/wrap/padding_wrap.h
|
||||
ui/wrap/slide_wrap.cpp
|
||||
ui/wrap/slide_wrap.h
|
||||
ui/wrap/vertical_layout.cpp
|
||||
ui/wrap/vertical_layout.h
|
||||
ui/wrap/wrap.h
|
||||
ui/abstract_button.cpp
|
||||
ui/abstract_button.h
|
||||
ui/basic_click_handlers.cpp
|
||||
ui/basic_click_handlers.h
|
||||
ui/click_handler.cpp
|
||||
ui/click_handler.h
|
||||
ui/delayed_activation.cpp
|
||||
ui/delayed_activation.h
|
||||
ui/emoji_config.cpp
|
||||
ui/emoji_config.h
|
||||
ui/focus_persister.h
|
||||
ui/inactive_press.cpp
|
||||
ui/inactive_press.h
|
||||
ui/integration.cpp
|
||||
ui/integration.h
|
||||
ui/main_queue_processor.cpp
|
||||
ui/main_queue_processor.h
|
||||
ui/painter.h
|
||||
ui/ph.cpp
|
||||
ui/ph.h
|
||||
ui/rect_part.h
|
||||
ui/round_rect.cpp
|
||||
ui/round_rect.h
|
||||
ui/rp_widget.cpp
|
||||
ui/rp_widget.h
|
||||
ui/ui_log.cpp
|
||||
ui/ui_log.h
|
||||
ui/ui_utility.cpp
|
||||
ui/ui_utility.h
|
||||
emoji_suggestions/emoji_suggestions.cpp
|
||||
emoji_suggestions/emoji_suggestions.h
|
||||
emoji_suggestions/emoji_suggestions_helper.h
|
||||
)
|
||||
|
||||
force_include(lib_ui ui/ui_pch.h)
|
||||
nice_target_sources(lib_ui ${src_loc} "${lib_ui_sources}")
|
||||
|
||||
target_include_directories(lib_ui
|
||||
PUBLIC
|
||||
${src_loc}
|
||||
${src_loc}/emoji_suggestions
|
||||
)
|
||||
|
||||
target_link_libraries(lib_ui
|
||||
PUBLIC
|
||||
lib_base
|
||||
)
|
||||
94
cmake/generate_styles.cmake
Normal file
94
cmake/generate_styles.cmake
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
function(append_generate_target target_name postfix generated_files gen_dst)
|
||||
add_custom_target(${target_name}_${postfix} DEPENDS ${generated_files})
|
||||
init_target(${target_name}_${postfix} "(gen)")
|
||||
add_dependencies(${target_name} ${target_name}_${postfix})
|
||||
target_sources(${target_name} PRIVATE ${generated_files})
|
||||
target_include_directories(${target_name} PUBLIC ${gen_dst})
|
||||
source_group("(gen)" FILES ${generated_files})
|
||||
endfunction()
|
||||
|
||||
function(generate_palette target_name palette_file)
|
||||
set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
|
||||
set(gen_src ${CMAKE_CURRENT_SOURCE_DIR}/${palette_file})
|
||||
set(generated_files
|
||||
${gen_dst}/styles/palette.cpp
|
||||
${gen_dst}/styles/palette.h
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${generated_files}
|
||||
COMMAND
|
||||
codegen_style
|
||||
-I${gen_dst}
|
||||
-o${gen_dst}/styles
|
||||
-w${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${gen_src}
|
||||
COMMENT "Generating palette (${target_name})"
|
||||
DEPENDS
|
||||
codegen_style
|
||||
${gen_src}
|
||||
MAIN_DEPENDENCY
|
||||
${gen_src}
|
||||
)
|
||||
append_generate_target(${target_name} palette "${generated_files}" ${gen_dst})
|
||||
endfunction()
|
||||
|
||||
function(generate_styles target_name src_loc style_files dependent_style_files)
|
||||
set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
|
||||
set(full_generated_files "")
|
||||
set(full_dependencies_list ${style_files})
|
||||
list(APPEND full_dependencies_list ${dependent_style_files})
|
||||
foreach (file ${style_files})
|
||||
set(gen_src ${CMAKE_CURRENT_SOURCE_DIR}/${file})
|
||||
get_filename_component(file_name ${file} NAME_WLE)
|
||||
set(generated_files
|
||||
${gen_dst}/styles/style_${file_name}.cpp
|
||||
${gen_dst}/styles/style_${file_name}.h
|
||||
)
|
||||
list(APPEND full_generated_files ${generated_files})
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${generated_files}
|
||||
COMMAND
|
||||
codegen_style
|
||||
-I${src_loc}
|
||||
-I${submodules_loc}/lib_ui
|
||||
-I${submodules_loc}/Resources
|
||||
-o${gen_dst}/styles
|
||||
-w${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${gen_src}
|
||||
COMMENT "Generating style (${target_name}:${file_name})"
|
||||
DEPENDS
|
||||
codegen_style
|
||||
${full_dependencies_list}
|
||||
MAIN_DEPENDENCY
|
||||
${gen_src}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
append_generate_target(${target_name} styles "${full_generated_files}" ${gen_dst})
|
||||
endfunction()
|
||||
|
||||
function(generate_emoji target_name suggestions_json)
|
||||
set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen)
|
||||
set(gen_src ${CMAKE_CURRENT_SOURCE_DIR}/${suggestions_json})
|
||||
set(generated_files
|
||||
${gen_dst}/emoji.cpp
|
||||
${gen_dst}/emoji.h
|
||||
${gen_dst}/emoji_suggestions_data.cpp
|
||||
${gen_dst}/emoji_suggestions_data.h
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${generated_files}
|
||||
COMMAND
|
||||
codegen_emoji
|
||||
-o${gen_dst}
|
||||
${gen_src}
|
||||
COMMENT "Generating emoji (${target_name})"
|
||||
DEPENDS
|
||||
codegen_emoji
|
||||
${gen_src}
|
||||
)
|
||||
append_generate_target(${target_name} emoji "${generated_files}" ${gen_dst})
|
||||
endfunction()
|
||||
Loading…
Add table
Reference in a new issue