#
# 
#                           IMPORTANT NOTICE
# 
#  The following open source license statement does not apply to any
#  entity in the Exception List published by FMSoft.
# 
#  For more information, please visit:
# 
#  https://www.fmsoft.cn/exception-list
# 
#
#   This file is part of DOM Ruler. DOM Ruler is a library to
#   maintain a DOM tree, lay out and stylize the DOM nodes by
#   using CSS (Cascaded Style Sheets).
#
#   Copyright (C) 2021 Beijing FMSoft Technologies Co., Ltd.
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU Lesser General License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU Lesser General License for more details.
#
#   You should have received a copy of the GNU Lesser General License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#   Or,
#
#   As this program is a library, any link to this program must follow
#   GNU Lesser General License version 3 (LLLGPLv3). If you cannot accept
#   LLLGPLv3, you need to be licensed from FMSoft.
#
#   If you have got a commercial license of this program, please use it
#   under the terms and conditions of the commercial license.
#
#   For more information about the commercial license, please refer to
#   <http://www.minigui.com/blog/minigui-licensing-policy/>.
#

cmake_minimum_required(VERSION 3.10)

project(css)
add_definitions(-fPIC)

list(APPEND css_INCLUDE_DIRECTORIES
    ../libparserutils/include
    ../libwapcaplet/include
    include
    src
)

list(APPEND css_SOURCES
    src/charset/detect.c
    src/parse/propstrings.c
    src/parse/properties/autogenerated_break_before.c
    src/parse/properties/autogenerated_page_break_before.c
    src/parse/properties/autogenerated_flex_direction.c
    src/parse/properties/autogenerated_border_bottom_width.c
    src/parse/properties/border_color.c
    src/parse/properties/autogenerated_padding_top.c
    src/parse/properties/autogenerated_outline_style.c
    src/parse/properties/autogenerated_margin_left.c
    src/parse/properties/margin.c
    src/parse/properties/autogenerated_break_after.c
    src/parse/properties/autogenerated_margin_bottom.c
    src/parse/properties/autogenerated_caption_side.c
    src/parse/properties/font.c
    src/parse/properties/border_width.c
    src/parse/properties/autogenerated_stress.c
    src/parse/properties/autogenerated_height.c
    src/parse/properties/content.c
    src/parse/properties/autogenerated_right.c
    src/parse/properties/autogenerated_border_top.c
    src/parse/properties/padding.c
    src/parse/properties/autogenerated_background_attachment.c
    src/parse/properties/autogenerated_list_style_position.c
    src/parse/properties/autogenerated_column_count.c
    src/parse/properties/css_property_parser_gen.c
    src/parse/properties/play_during.c
    src/parse/properties/autogenerated_background_image.c
    src/parse/properties/autogenerated_left.c
    src/parse/properties/autogenerated_pause_after.c
    src/parse/properties/autogenerated_padding_right.c
    src/parse/properties/autogenerated_writing_mode.c
    src/parse/properties/autogenerated_border_right_color.c
    src/parse/properties/autogenerated_break_inside.c
    src/parse/properties/border.c
    src/parse/properties/list_style_type.c
    src/parse/properties/autogenerated_counter_reset.c
    src/parse/properties/flex.c
    src/parse/properties/autogenerated_box_sizing.c
    src/parse/properties/outline.c
    src/parse/properties/cursor.c
    src/parse/properties/autogenerated_margin_top.c
    src/parse/properties/autogenerated_page_break_after.c
    src/parse/properties/autogenerated_color.c
    src/parse/properties/autogenerated_overflow_y.c
    src/parse/properties/column_rule.c
    src/parse/properties/autogenerated_flex_shrink.c
    src/parse/properties/autogenerated_margin_right.c
    src/parse/properties/opacity.c
    src/parse/properties/background_position.c
    src/parse/properties/autogenerated_padding_side.c
    src/parse/properties/autogenerated_order.c
    src/parse/properties/autogenerated_border_left_color.c
    src/parse/properties/autogenerated_border_right.c
    src/parse/properties/utils.c
    src/parse/properties/autogenerated_column_width.c
    src/parse/properties/pause.c
    src/parse/properties/autogenerated_speak.c
    src/parse/properties/autogenerated_volume.c
    src/parse/properties/properties.c
    src/parse/properties/autogenerated_border_top_style.c
    src/parse/properties/autogenerated_position.c
    src/parse/properties/autogenerated_border_left_width.c
    src/parse/properties/autogenerated_widows.c
    src/parse/properties/autogenerated_padding_bottom.c
    src/parse/properties/autogenerated_side.c
    src/parse/properties/autogenerated_outline_color.c
    src/parse/properties/text_decoration.c
    src/parse/properties/autogenerated_clear.c
    src/parse/properties/autogenerated_max_height.c
    src/parse/properties/autogenerated_bottom.c
    src/parse/properties/list_style.c
    src/parse/properties/voice_family.c
    src/parse/properties/autogenerated_border_bottom_style.c
    src/parse/properties/overflow.c
    src/parse/properties/autogenerated_flex_grow.c
    src/parse/properties/autogenerated_width.c
    src/parse/properties/autogenerated_flex_basis.c
    src/parse/properties/autogenerated_z_index.c
    src/parse/properties/autogenerated_float.c
    src/parse/properties/font_weight.c
    src/parse/properties/autogenerated_background_color.c
    src/parse/properties/autogenerated_column_rule_width.c
    src/parse/properties/autogenerated_border_collapse.c
    src/parse/properties/autogenerated_table_layout.c
    src/parse/properties/azimuth.c
    src/parse/properties/autogenerated_speak_header.c
    src/parse/properties/autogenerated_min_height.c
    src/parse/properties/autogenerated_background_repeat.c
    src/parse/properties/autogenerated_page_break_inside.c
    src/parse/properties/autogenerated_border_bottom.c
    src/parse/properties/autogenerated_overflow_x.c
    src/parse/properties/autogenerated_cue_after.c
    src/parse/properties/autogenerated_top.c
    src/parse/properties/autogenerated_outline_width.c
    src/parse/properties/autogenerated_max_width.c
    src/parse/properties/flex_flow.c
    src/parse/properties/autogenerated_richness.c
    src/parse/properties/autogenerated_border_side_width.c
    src/parse/properties/autogenerated_padding_left.c
    src/parse/properties/autogenerated_font_size.c
    src/parse/properties/autogenerated_visibility.c
    src/parse/properties/autogenerated_speak_numeral.c
    src/parse/properties/autogenerated_letter_spacing.c
    src/parse/properties/autogenerated_pitch_range.c
    src/parse/properties/autogenerated_text_indent.c
    src/parse/properties/autogenerated_speech_rate.c
    src/parse/properties/autogenerated_border_top_color.c
    src/parse/properties/autogenerated_text_align.c
    src/parse/properties/autogenerated_align_content.c
    src/parse/properties/border_style.c
    src/parse/properties/autogenerated_white_space.c
    src/parse/properties/autogenerated_column_fill.c
    src/parse/properties/autogenerated_font_variant.c
    src/parse/properties/autogenerated_counter_increment.c
    src/parse/properties/autogenerated_border_side_style.c
    src/parse/properties/autogenerated_word_spacing.c
    src/parse/properties/autogenerated_margin_side.c
    src/parse/properties/autogenerated_orphans.c
    src/parse/properties/cue.c
    src/parse/properties/autogenerated_line_height.c
    src/parse/properties/autogenerated_pitch.c
    src/parse/properties/border_spacing.c
    src/parse/properties/autogenerated_justify_content.c
    src/parse/properties/autogenerated_unicode_bidi.c
    src/parse/properties/autogenerated_border_bottom_color.c
    src/parse/properties/autogenerated_direction.c
    src/parse/properties/autogenerated_column_rule_style.c
    src/parse/properties/autogenerated_text_transform.c
    src/parse/properties/font_family.c
    src/parse/properties/autogenerated_border_top_width.c
    src/parse/properties/autogenerated_align_items.c
    src/parse/properties/clip.c
    src/parse/properties/autogenerated_speak_punctuation.c
    src/parse/properties/autogenerated_border_right_width.c
    src/parse/properties/autogenerated_align_self.c
    src/parse/properties/autogenerated_border_left.c
    src/parse/properties/autogenerated_column_rule_color.c
    src/parse/properties/autogenerated_list_style_image.c
    src/parse/properties/autogenerated_font_style.c
    src/parse/properties/autogenerated_display.c
    src/parse/properties/autogenerated_cue_before.c
    src/parse/properties/autogenerated_min_width.c
    src/parse/properties/background.c
    src/parse/properties/autogenerated_vertical_align.c
    src/parse/properties/autogenerated_column_span.c
    src/parse/properties/autogenerated_empty_cells.c
    src/parse/properties/columns.c
    src/parse/properties/autogenerated_flex_wrap.c
    src/parse/properties/autogenerated_column_gap.c
    src/parse/properties/autogenerated_pause_before.c
    src/parse/properties/autogenerated_border_side_color.c
    src/parse/properties/quotes.c
    src/parse/properties/autogenerated_border_right_style.c
    src/parse/properties/autogenerated_border_left_style.c
    src/parse/properties/elevation.c
    src/parse/properties/grid_template_columns.c
    src/parse/properties/grid_template_rows.c
    src/parse/properties/autogenerated_grid_template_columns.c
    src/parse/properties/autogenerated_grid_template_rows.c
    src/parse/properties/autogenerated_grid_column_start.c
    src/parse/properties/autogenerated_grid_column_end.c
    src/parse/properties/autogenerated_grid_row_start.c
    src/parse/properties/autogenerated_grid_row_end.c
    src/parse/properties/autogenerated_border_top_left_radius.c
    src/parse/properties/autogenerated_border_top_right_radius.c
    src/parse/properties/autogenerated_border_bottom_left_radius.c
    src/parse/properties/autogenerated_border_bottom_right_radius.c
    src/parse/properties/autogenerated_text_align_last.c
    src/parse/properties/autogenerated_text_justify.c
    src/parse/properties/autogenerated_text_overflow.c
    src/parse/properties/text_overflow.c
    #### begin
    src/parse/properties/autogenerated_text_shadow.c
    src/parse/properties/text_shadow.c
    src/parse/properties/autogenerated_word_break.c
    src/parse/properties/autogenerated_word_wrap.c
    src/parse/properties/autogenerated_baseline_shift.c
    src/parse/properties/autogenerated_clip_path.c
    src/parse/properties/autogenerated_clip_rule.c
    src/parse/properties/autogenerated_comp_op.c
    src/parse/properties/autogenerated_enable_background.c
    src/parse/properties/autogenerated_fill.c
    src/parse/properties/fill.c
    src/parse/properties/autogenerated_fill_opacity.c
    src/parse/properties/fill_opacity.c
    src/parse/properties/autogenerated_fill_rule.c
    src/parse/properties/autogenerated_filter.c
    src/parse/properties/filter.c
    src/parse/properties/autogenerated_flood_color.c
    src/parse/properties/autogenerated_flood_opacity.c
    src/parse/properties/flood_opacity.c
    src/parse/properties/autogenerated_font_stretch.c
    src/parse/properties/autogenerated_marker_end.c
    src/parse/properties/autogenerated_marker_mid.c
    src/parse/properties/autogenerated_marker_start.c
    src/parse/properties/autogenerated_mask.c
    src/parse/properties/autogenerated_shape_rendering.c
    src/parse/properties/autogenerated_stop_color.c
    src/parse/properties/autogenerated_stop_opacity.c
    src/parse/properties/stop_opacity.c
    src/parse/properties/autogenerated_stroke.c
    src/parse/properties/stroke.c
    src/parse/properties/autogenerated_stroke_dasharray.c
    src/parse/properties/stroke_dasharray.c
    src/parse/properties/autogenerated_stroke_dashoffset.c
    src/parse/properties/autogenerated_stroke_linecap.c
    src/parse/properties/autogenerated_stroke_linejoin.c
    src/parse/properties/autogenerated_stroke_miterlimit.c
    src/parse/properties/autogenerated_stroke_opacity.c
    src/parse/properties/stroke_opacity.c
    src/parse/properties/autogenerated_stroke_width.c
    src/parse/properties/autogenerated_text_anchor.c
    src/parse/properties/autogenerated_text_rendering.c
    #### end
    src/parse/language.c
    src/parse/mq.c
    src/parse/font_face.c
    src/parse/parse.c
    src/parse/important.c
    src/select/arena.c
    src/select/properties/display.c
    src/select/properties/font_style.c
    src/select/properties/border_top_width.c
    src/select/properties/volume.c
    src/select/properties/top.c
    src/select/properties/column_rule_style.c
    src/select/properties/margin_left.c
    src/select/properties/column_span.c
    src/select/properties/pause_after.c
    src/select/properties/border_bottom_width.c
    src/select/properties/align_items.c
    src/select/properties/speech_rate.c
    src/select/properties/background_attachment.c
    src/select/properties/content.c
    src/select/properties/letter_spacing.c
    src/select/properties/column_rule_color.c
    src/select/properties/margin_right.c
    src/select/properties/play_during.c
    src/select/properties/font_variant.c
    src/select/properties/position.c
    src/select/properties/left.c
    src/select/properties/cue_before.c
    src/select/properties/box_sizing.c
    src/select/properties/column_fill.c
    src/select/properties/align_content.c
    src/select/properties/min_width.c
    src/select/properties/list_style_type.c
    src/select/properties/outline_width.c
    src/select/properties/border_bottom_color.c
    src/select/properties/text_align.c
    src/select/properties/speak_numeral.c
    src/select/properties/counter_reset.c
    src/select/properties/column_width.c
    src/select/properties/counter_increment.c
    src/select/properties/cursor.c
    src/select/properties/background_color.c
    src/select/properties/white_space.c
    src/select/properties/text_transform.c
    src/select/properties/column_count.c
    src/select/properties/opacity.c
    src/select/properties/background_position.c
    src/select/properties/column_rule_width.c
    src/select/properties/width.c
    src/select/properties/clear.c
    src/select/properties/list_style_image.c
    src/select/properties/stress.c
    src/select/properties/height.c
    src/select/properties/outline_color.c
    src/select/properties/vertical_align.c
    src/select/properties/flex_direction.c
    src/select/properties/page_break_before.c
    src/select/properties/text_decoration.c
    src/select/properties/justify_content.c
    src/select/properties/pitch_range.c
    src/select/properties/text_indent.c
    src/select/properties/page_break_after.c
    src/select/properties/voice_family.c
    src/select/properties/pause_before.c
    src/select/properties/float.c
    src/select/properties/color.c
    src/select/properties/order.c
    src/select/properties/background_image.c
    src/select/properties/font_weight.c
    src/select/properties/border_left_color.c
    src/select/properties/padding_bottom.c
    src/select/properties/table_layout.c
    src/select/properties/padding_left.c
    src/select/properties/orphans.c
    src/select/properties/break_after.c
    src/select/properties/azimuth.c
    src/select/properties/z_index.c
    src/select/properties/bottom.c
    src/select/properties/margin_bottom.c
    src/select/properties/min_height.c
    src/select/properties/background_repeat.c
    src/select/properties/align_self.c
    src/select/properties/richness.c
    src/select/properties/overflow_y.c
    src/select/properties/flex_wrap.c
    src/select/properties/caption_side.c
    src/select/properties/visibility.c
    src/select/properties/border_left_width.c
    src/select/properties/line_height.c
    src/select/properties/cue_after.c
    src/select/properties/direction.c
    src/select/properties/list_style_position.c
    src/select/properties/writing_mode.c
    src/select/properties/border_spacing.c
    src/select/properties/speak_punctuation.c
    src/select/properties/empty_cells.c
    src/select/properties/border_left_style.c
    src/select/properties/border_collapse.c
    src/select/properties/padding_top.c
    src/select/properties/column_gap.c
    src/select/properties/padding_right.c
    src/select/properties/font_family.c
    src/select/properties/widows.c
    src/select/properties/unicode_bidi.c
    src/select/properties/flex_basis.c
    src/select/properties/clip.c
    src/select/properties/border_right_width.c
    src/select/properties/break_before.c
    src/select/properties/page_break_inside.c
    src/select/properties/helpers.c
    src/select/properties/border_top_style.c
    src/select/properties/border_bottom_style.c
    src/select/properties/border_right_style.c
    src/select/properties/outline_style.c
    src/select/properties/break_inside.c
    src/select/properties/flex_grow.c
    src/select/properties/right.c
    src/select/properties/speak_header.c
    src/select/properties/word_spacing.c
    src/select/properties/pitch.c
    src/select/properties/border_top_color.c
    src/select/properties/overflow_x.c
    src/select/properties/margin_top.c
    src/select/properties/font_size.c
    src/select/properties/quotes.c
    src/select/properties/max_height.c
    src/select/properties/speak.c
    src/select/properties/flex_shrink.c
    src/select/properties/max_width.c
    src/select/properties/elevation.c
    src/select/properties/border_right_color.c
    src/select/properties/grid_template_columns.c
    src/select/properties/grid_template_rows.c
    src/select/properties/grid_column_start.c
    src/select/properties/grid_column_end.c
    src/select/properties/grid_row_start.c
    src/select/properties/grid_row_end.c
    src/select/properties/border_top_left_radius.c
    src/select/properties/border_top_right_radius.c
    src/select/properties/border_bottom_left_radius.c
    src/select/properties/border_bottom_right_radius.c
    src/select/properties/text_align_last.c
    src/select/properties/text_justify.c
    src/select/properties/text_overflow.c
    src/select/properties/text_shadow.c
    #### begin
    src/select/properties/word_break.c
    src/select/properties/word_wrap.c
    src/select/properties/baseline_shift.c
    src/select/properties/clip_path.c
    src/select/properties/clip_rule.c
    src/select/properties/comp_op.c
    src/select/properties/enable_background.c
    src/select/properties/fill.c
    src/select/properties/fill_opacity.c
    src/select/properties/fill_rule.c
    src/select/properties/filter.c
    src/select/properties/flood_color.c
    src/select/properties/flood_opacity.c
    src/select/properties/font_stretch.c
    src/select/properties/marker_start.c
    src/select/properties/marker_mid.c
    src/select/properties/marker_end.c
    src/select/properties/mask.c
    src/select/properties/shape_rendering.c
    src/select/properties/stop_color.c
    src/select/properties/stop_opacity.c
    src/select/properties/stroke.c
    src/select/properties/stroke_width.c
    src/select/properties/stroke_opacity.c
    src/select/properties/stroke_dasharray.c
    src/select/properties/stroke_dashoffset.c
    src/select/properties/stroke_linecap.c
    src/select/properties/stroke_linejoin.c
    src/select/properties/stroke_miterlimit.c
    src/select/properties/text_anchor.c
    src/select/properties/text_rendering.c
    #### end
    src/select/computed.c
    src/select/hash.c
    src/select/select.c
    src/select/font_face.c
    src/select/dispatch.c
    src/utils/errors.c
    src/utils/utils.c
    src/lex/lex.c
    src/stylesheet.c
)

include_directories(${css_INCLUDE_DIRECTORIES})
add_library(css STATIC ${css_SOURCES})
target_link_libraries(css parserutils wapcaplet)


