CMakeLists.txt (43,284 bytes)
2018-09-29 21:41
cmake_minimum_required (VERSION 2.6)
project (libcss)
include(GNUInstallDirs)
include(FindPkgConfig)
enable_testing()
include( CTest )
#Obligitory version and copyright for pkg-config file and version info
#as well as possibly, automated installers.
set(CSS_COMPONENT_NAME "css")
set(CSS_AUTHOR "John-Mark Bell <jmb@netsurf-browser.org>")
set(CSS_COPYRIGHT "Copyright 2009-2015 John-Mark Bell <jmb@netsurf-browser.org>")
set(CSS_DESCRIPTION "CSS parsing and selection library")
set(CSS_VERSION_MAJOR 0)
set(CSS_VERSION_MINOR 8)
set(CSS_VERSION_PATCH 0)
set(CSS_SOVERSION ${CSS_VERSION_MAJOR}.${CSS_VERSION_MINOR}.${CSS_VERSION_PATCH})
#Do not prefix BUILD_SHARED_LIBS and BUILD_STATIC_LIBS because those are standard cmake options
#We only put them in the menu for convenience.
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(BUILD_STATIC_LIBS "Build static libraries" ON)
option(CSS_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
option(CSS_RUN_DISABLED_TESTS "Run tests that the authors commented out" OFF)
set(CSS_GEN_PARSER_EXECUTABLE CACHE FILEPATH "gen_parser program executable (required only for cross-compiling)")
if(CMAKE_COMPILER_IS_GNUCC)
set(CSS_WARNFLAGS -Wall -W -Wundef -Wpointer-arith -Wcast-align
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Wnested-externs)
endif(CMAKE_COMPILER_IS_GNUCC)
set(CSS_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(CSS_ADDITIONAL_C_FILES
${CMAKE_SOURCE_DIR}/src/stylesheet.h
${CMAKE_SOURCE_DIR}/src/stylesheet.c
${CMAKE_SOURCE_DIR}/src/charset/detect.h
${CMAKE_SOURCE_DIR}/src/charset/detect.c
${CMAKE_SOURCE_DIR}/src/lex/lex.h
${CMAKE_SOURCE_DIR}/src/lex/lex.c
${CMAKE_SOURCE_DIR}/src/bytecode/bytecode.h
${CMAKE_SOURCE_DIR}/src/utils/errors.c
${CMAKE_SOURCE_DIR}/src/utils/utils.c
${CMAKE_SOURCE_DIR}/src/parse/parse.c
${CMAKE_SOURCE_DIR}/src/parse/language.h
${CMAKE_SOURCE_DIR}/src/parse/language.c
${CMAKE_SOURCE_DIR}/src/parse/important.c
${CMAKE_SOURCE_DIR}/src/parse/propstrings.c
${CMAKE_SOURCE_DIR}/src/parse/font_face.c
${CMAKE_SOURCE_DIR}/src/parse/properties/azimuth.c
${CMAKE_SOURCE_DIR}/src/parse/properties/background.c
${CMAKE_SOURCE_DIR}/src/parse/properties/background_position.c
${CMAKE_SOURCE_DIR}/src/parse/properties/border.c
${CMAKE_SOURCE_DIR}/src/parse/properties/border_color.c
${CMAKE_SOURCE_DIR}/src/parse/properties/border_spacing.c
${CMAKE_SOURCE_DIR}/src/parse/properties/border_style.c
${CMAKE_SOURCE_DIR}/src/parse/properties/border_width.c
${CMAKE_SOURCE_DIR}/src/parse/properties/clip.c
${CMAKE_SOURCE_DIR}/src/parse/properties/columns.c
${CMAKE_SOURCE_DIR}/src/parse/properties/column_rule.c
${CMAKE_SOURCE_DIR}/src/parse/properties/content.c
${CMAKE_SOURCE_DIR}/src/parse/properties/cue.c
${CMAKE_SOURCE_DIR}/src/parse/properties/cursor.c
${CMAKE_SOURCE_DIR}/src/parse/properties/elevation.c
${CMAKE_SOURCE_DIR}/src/parse/properties/flex.c
${CMAKE_SOURCE_DIR}/src/parse/properties/flex_flow.c
${CMAKE_SOURCE_DIR}/src/parse/properties/font.c
${CMAKE_SOURCE_DIR}/src/parse/properties/font_family.c
${CMAKE_SOURCE_DIR}/src/parse/properties/font_weight.c
${CMAKE_SOURCE_DIR}/src/parse/properties/list_style.c
${CMAKE_SOURCE_DIR}/src/parse/properties/list_style_type.c
${CMAKE_SOURCE_DIR}/src/parse/properties/margin.c
${CMAKE_SOURCE_DIR}/src/parse/properties/opacity.c
${CMAKE_SOURCE_DIR}/src/parse/properties/outline.c
${CMAKE_SOURCE_DIR}/src/parse/properties/overflow.c
${CMAKE_SOURCE_DIR}/src/parse/properties/padding.c
${CMAKE_SOURCE_DIR}/src/parse/properties/pause.c
${CMAKE_SOURCE_DIR}/src/parse/properties/play_during.c
${CMAKE_SOURCE_DIR}/src/parse/properties/properties.h
${CMAKE_SOURCE_DIR}/src/parse/properties/properties.c
${CMAKE_SOURCE_DIR}/src/parse/properties/quotes.c
${CMAKE_SOURCE_DIR}/src/parse/properties/text_decoration.c
${CMAKE_SOURCE_DIR}/src/parse/properties/utils.c
${CMAKE_SOURCE_DIR}/src/parse/properties/voice_family.c
${CMAKE_SOURCE_DIR}/src/select/autogenerated_computed.h
${CMAKE_SOURCE_DIR}/src/select/autogenerated_computed.h
${CMAKE_SOURCE_DIR}/src/select/arena.h
${CMAKE_SOURCE_DIR}/src/select/arena.c
${CMAKE_SOURCE_DIR}/src/select/computed.h
${CMAKE_SOURCE_DIR}/src/select/computed.c
${CMAKE_SOURCE_DIR}/src/select/dispatch.h
${CMAKE_SOURCE_DIR}/src/select/dispatch.c
${CMAKE_SOURCE_DIR}/src/select/hash.h
${CMAKE_SOURCE_DIR}/src/select/hash.c
${CMAKE_SOURCE_DIR}/src/select/select.h
${CMAKE_SOURCE_DIR}/src/select/select.c
${CMAKE_SOURCE_DIR}/src/select/font_face.h
${CMAKE_SOURCE_DIR}/src/select/font_face.c
${CMAKE_SOURCE_DIR}/src/select/properties/helpers.c
${CMAKE_SOURCE_DIR}/src/select/properties/align_content.c
${CMAKE_SOURCE_DIR}/src/select/properties/align_items.c
${CMAKE_SOURCE_DIR}/src/select/properties/align_self.c
${CMAKE_SOURCE_DIR}/src/select/properties/azimuth.c
${CMAKE_SOURCE_DIR}/src/select/properties/background_attachment.c
${CMAKE_SOURCE_DIR}/src/select/properties/background_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/background_image.c
${CMAKE_SOURCE_DIR}/src/select/properties/background_position.c
${CMAKE_SOURCE_DIR}/src/select/properties/background_repeat.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_bottom_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_bottom_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_bottom_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_collapse.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_left_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_left_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_left_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_right_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_right_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_right_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_spacing.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_top_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_top_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/border_top_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/bottom.c
${CMAKE_SOURCE_DIR}/src/select/properties/box_sizing.c
${CMAKE_SOURCE_DIR}/src/select/properties/break_after.c
${CMAKE_SOURCE_DIR}/src/select/properties/break_before.c
${CMAKE_SOURCE_DIR}/src/select/properties/break_inside.c
${CMAKE_SOURCE_DIR}/src/select/properties/caption_side.c
${CMAKE_SOURCE_DIR}/src/select/properties/clear.c
${CMAKE_SOURCE_DIR}/src/select/properties/clip.c
${CMAKE_SOURCE_DIR}/src/select/properties/color.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_count.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_fill.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_gap.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_rule_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_rule_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_rule_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_span.c
${CMAKE_SOURCE_DIR}/src/select/properties/column_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/content.c
${CMAKE_SOURCE_DIR}/src/select/properties/counter_increment.c
${CMAKE_SOURCE_DIR}/src/select/properties/counter_reset.c
${CMAKE_SOURCE_DIR}/src/select/properties/cue_after.c
${CMAKE_SOURCE_DIR}/src/select/properties/cue_before.c
${CMAKE_SOURCE_DIR}/src/select/properties/cursor.c
${CMAKE_SOURCE_DIR}/src/select/properties/direction.c
${CMAKE_SOURCE_DIR}/src/select/properties/display.c
${CMAKE_SOURCE_DIR}/src/select/properties/elevation.c
${CMAKE_SOURCE_DIR}/src/select/properties/empty_cells.c
${CMAKE_SOURCE_DIR}/src/select/properties/flex_basis.c
${CMAKE_SOURCE_DIR}/src/select/properties/flex_direction.c
${CMAKE_SOURCE_DIR}/src/select/properties/flex_grow.c
${CMAKE_SOURCE_DIR}/src/select/properties/flex_shrink.c
${CMAKE_SOURCE_DIR}/src/select/properties/flex_wrap.c
${CMAKE_SOURCE_DIR}/src/select/properties/float.c
${CMAKE_SOURCE_DIR}/src/select/properties/font_family.c
${CMAKE_SOURCE_DIR}/src/select/properties/font_size.c
${CMAKE_SOURCE_DIR}/src/select/properties/font_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/font_variant.c
${CMAKE_SOURCE_DIR}/src/select/properties/font_weight.c
${CMAKE_SOURCE_DIR}/src/select/properties/height.c
${CMAKE_SOURCE_DIR}/src/select/properties/justify_content.c
${CMAKE_SOURCE_DIR}/src/select/properties/left.c
${CMAKE_SOURCE_DIR}/src/select/properties/letter_spacing.c
${CMAKE_SOURCE_DIR}/src/select/properties/line_height.c
${CMAKE_SOURCE_DIR}/src/select/properties/list_style_image.c
${CMAKE_SOURCE_DIR}/src/select/properties/list_style_position.c
${CMAKE_SOURCE_DIR}/src/select/properties/list_style_type.c
${CMAKE_SOURCE_DIR}/src/select/properties/margin_bottom.c
${CMAKE_SOURCE_DIR}/src/select/properties/margin_left.c
${CMAKE_SOURCE_DIR}/src/select/properties/margin_right.c
${CMAKE_SOURCE_DIR}/src/select/properties/margin_top.c
${CMAKE_SOURCE_DIR}/src/select/properties/max_height.c
${CMAKE_SOURCE_DIR}/src/select/properties/max_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/min_height.c
${CMAKE_SOURCE_DIR}/src/select/properties/min_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/opacity.c
${CMAKE_SOURCE_DIR}/src/select/properties/order.c
${CMAKE_SOURCE_DIR}/src/select/properties/orphans.c
${CMAKE_SOURCE_DIR}/src/select/properties/outline_color.c
${CMAKE_SOURCE_DIR}/src/select/properties/outline_style.c
${CMAKE_SOURCE_DIR}/src/select/properties/outline_width.c
${CMAKE_SOURCE_DIR}/src/select/properties/overflow_x.c
${CMAKE_SOURCE_DIR}/src/select/properties/overflow_y.c
${CMAKE_SOURCE_DIR}/src/select/properties/padding_bottom.c
${CMAKE_SOURCE_DIR}/src/select/properties/padding_left.c
${CMAKE_SOURCE_DIR}/src/select/properties/padding_right.c
${CMAKE_SOURCE_DIR}/src/select/properties/padding_top.c
${CMAKE_SOURCE_DIR}/src/select/properties/page_break_after.c
${CMAKE_SOURCE_DIR}/src/select/properties/page_break_before.c
${CMAKE_SOURCE_DIR}/src/select/properties/page_break_inside.c
${CMAKE_SOURCE_DIR}/src/select/properties/pause_after.c
${CMAKE_SOURCE_DIR}/src/select/properties/pause_before.c
${CMAKE_SOURCE_DIR}/src/select/properties/pitch.c
${CMAKE_SOURCE_DIR}/src/select/properties/pitch_range.c
${CMAKE_SOURCE_DIR}/src/select/properties/play_during.c
${CMAKE_SOURCE_DIR}/src/select/properties/position.c
${CMAKE_SOURCE_DIR}/src/select/properties/quotes.c
${CMAKE_SOURCE_DIR}/src/select/properties/richness.c
${CMAKE_SOURCE_DIR}/src/select/properties/right.c
${CMAKE_SOURCE_DIR}/src/select/properties/speech_rate.c
${CMAKE_SOURCE_DIR}/src/select/properties/speak.c
${CMAKE_SOURCE_DIR}/src/select/properties/speak_header.c
${CMAKE_SOURCE_DIR}/src/select/properties/speak_numeral.c
${CMAKE_SOURCE_DIR}/src/select/properties/speak_punctuation.c
${CMAKE_SOURCE_DIR}/src/select/properties/stress.c
${CMAKE_SOURCE_DIR}/src/select/properties/table_layout.c
${CMAKE_SOURCE_DIR}/src/select/properties/text_align.c
${CMAKE_SOURCE_DIR}/src/select/properties/text_decoration.c
${CMAKE_SOURCE_DIR}/src/select/properties/text_indent.c
${CMAKE_SOURCE_DIR}/src/select/properties/text_transform.c
${CMAKE_SOURCE_DIR}/src/select/properties/top.c
${CMAKE_SOURCE_DIR}/src/select/properties/unicode_bidi.c
${CMAKE_SOURCE_DIR}/src/select/properties/vertical_align.c
${CMAKE_SOURCE_DIR}/src/select/properties/visibility.c
${CMAKE_SOURCE_DIR}/src/select/properties/voice_family.c
${CMAKE_SOURCE_DIR}/src/select/properties/volume.c
${CMAKE_SOURCE_DIR}/src/select/properties/white_space.c
${CMAKE_SOURCE_DIR}/src/select/properties/widows.c
${CMAKE_SOURCE_DIR}/src/select/properties/width.c
${CMAKE_SOURCE_DIR}/src/select/properties/word_spacing.c
${CMAKE_SOURCE_DIR}/src/select/properties/writing_mode.c
${CMAKE_SOURCE_DIR}/src/select/properties/z_index.c)
set(CSS_PUBLIC_HEADER_FILES
include/libcss/computed.h
include/libcss/errors.h
include/libcss/font_face.h
include/libcss/fpmath.h
include/libcss/functypes.h
include/libcss/hint.h
include/libcss/libcss.h
include/libcss/properties.h
include/libcss/select.h
include/libcss/stylesheet.h
include/libcss/types.h)
include_directories(${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/include)
# setup any additional libs required by this.
set(CSS_ADDITIONAL_LIBS "")
set(CSS_ADDITIONAL_DIRS "")
set(CSS_ADDITIONAL_DEFS "")
# From: https://gitlab.kitware.com/cmake/community/wikis/contrib/macros/TestInline
# Inspired from /usr/share/autoconf/autoconf/c.m4
# I put it here to replace the GCCISM inline="__inline__"
set(TEST_C "/* Test source lifted from /usr/share/autoconf/autoconf/c.m4 */
typedef int foo_t;
static inline foo_t static_foo(){return 0;}
foo_t foo(){return 0;}
int main(int argc, char *argv[]){return 0;}")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c "${TEST_C}")
FOREACH(KEYWORD "inline" "__inline__" "__inline")
IF(NOT DEFINED C_INLINE)
TRY_COMPILE(C_HAS_${KEYWORD} "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/test_inline.c"
COMPILE_DEFINITIONS "-Dinline=${KEYWORD}")
IF(C_HAS_${KEYWORD})
SET(C_INLINE TRUE)
ADD_DEFINITIONS("-Dinline=${KEYWORD}")
ENDIF(C_HAS_${KEYWORD})
ENDIF(NOT DEFINED C_INLINE)
ENDFOREACH(KEYWORD)
IF(NOT DEFINED C_INLINE)
ADD_DEFINITIONS("-Dinline=")
ENDIF(NOT DEFINED C_INLINE)
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c)
if(CMAKE_CROSSCOMPILING)
if(NOT CSS_GEN_PARSER_EXECUTABLE)
message(FATAL_ERROR "CSS_GEN_PARSER_EXECUTABLE must be set to the fully-qualified name of the gen_parser executable")
endif(NOT CSS_GEN_PARSER_EXECUTABLE)
else()
if(NOT CSS_GEN_PARSER_EXECUTABLE)
try_compile(CSS_GEN_PARSER_COMPILED ${CSS_BUILD_DIR} SOURCES ${CMAKE_SOURCE_DIR}/src/parse/properties/css_property_parser_gen.c
COPY_FILE ${CSS_BUILD_DIR}/gen_parser${CMAKE_EXECUTABLE_SUFFIX} OUTPUT_VARIABLE CSS_GEN_PARSE_RES)
if(NOT CSS_GEN_PARSER_COMPILED)
message(FATAL_ERROR "Generating gen_parser${CMAKE_EXECUTABLE_SUFFIX} - Failed")
else()
set(CSS_GEN_PARSER_EXECUTABLE ${CSS_BUILD_DIR}/gen_parser${CMAKE_EXECUTABLE_SUFFIX})
message(STATUS "Generating gen_parser${CMAKE_EXECUTABLE_SUFFIX} - Done")
endif(NOT CSS_GEN_PARSER_COMPILED)
endif(NOT CSS_GEN_PARSER_EXECUTABLE)
endif(CMAKE_CROSSCOMPILING)
file(READ ${CMAKE_SOURCE_DIR}/src/parse/properties/properties.gen CSS_AUTOGEN_PARSERS)
#This is from: https://cmake.org/pipermail/cmake/2007-May/014236.html
STRING(REGEX REPLACE ";" "\\\\;" CSS_AUTOGEN_PARSERS "${CSS_AUTOGEN_PARSERS}")
STRING(REGEX REPLACE "\n" ";" CSS_AUTOGEN_PARSERS "${CSS_AUTOGEN_PARSERS}")
file(MAKE_DIRECTORY ${CSS_BUILD_DIR}/src/parse/properties)
foreach(CSS_AUTOGEN_LINE ${CSS_AUTOGEN_PARSERS})
string(SUBSTRING "${CSS_AUTOGEN_LINE}" 0 1 CSS_CHAR )
if(NOT(${CSS_CHAR} STREQUAL "#") AND NOT(${CSS_CHAR} STREQUAL ":"))
string(FIND "${CSS_AUTOGEN_LINE}" ":" CSS_LINE_index)
if(${CSS_LINE_index} LESS 0)
else()
string(SUBSTRING "${CSS_AUTOGEN_LINE}" 0 "${CSS_LINE_index}" CSS_CUR_FNAME)
message(STATUS "GENERATING: autogenerated_${CSS_CUR_FNAME}.c")
set(CSS_CUR_FQNAME "${CSS_BUILD_DIR}/src/parse/properties/autogenerated_${CSS_CUR_FNAME}.c")
execute_process(
COMMAND ${CSS_GEN_PARSER_EXECUTABLE} -o ${CSS_CUR_FQNAME} ${CSS_AUTOGEN_LINE})
set(CSS_ADDITIONAL_C_FILES ${CSS_ADDITIONAL_C_FILES} ${CSS_CUR_FQNAME})
endif()
endif()
endforeach(CSS_AUTOGEN_LINE)
if(PKG_CONFIG_FOUND)
pkg_check_modules(libparserutils REQUIRED libparserutils)
list(APPEND CSS_ADDITIONAL_DIRS ${libparserutils_INCLUDEDIR})
list(APPEND CSS_ADDITIONAL_LIBS ${libparserutils_LIBRARIES})
else()
find_library(parserutils CSS_LIBPARSEERUTILS_LIB)
if (CSS_LIBPARSEERUTILS_LIB)
list(APPEND CSS_ADDITIONAL_LIBS ${CSS_LIBPARSEERUTILS})
else()
message(FATAL_ERROR "Parseutils not found")
endif(CSS_LIBPARSEERUTILS_LIB)
endif(PKG_CONFIG_FOUND)
if(PKG_CONFIG_FOUND)
pkg_check_modules(libwapcaplet REQUIRED libwapcaplet)
list(APPEND CSS_ADDITIONAL_DIRS ${libwapcaplet_INCLUDEDIR})
list(APPEND CSS_ADDITIONAL_LIBS ${libwapcaplet_LIBRARIES})
else()
find_library(wapcaplet CSS_libwapcaplet_LIB)
if (CSS_libwapcaplet_LIB)
list(APPEND CSS_ADDITIONAL_LIBS ${CSS_libwapcaplet_LIB})
else()
message(FATAL_ERROR "wapcaple not found")
endif(HUBBUB_HUBBUB_LIB)
endif(PKG_CONFIG_FOUND)
if(BUILD_SHARED_LIBS)
if(CMAKE_RC_COMPILER)
# Make .rc file
set(CSS_RC_CONTENTS "1 VERSIONINFO
FILEVERSION ${CSS_VERSION_MAJOR},${CSS_VERSION_MINOR},${CSS_VERSION_PATCH},0
PRODUCTVERSION ${CSS_VERSION_MAJOR},${CSS_VERSION_MINOR},${CSS_VERSION_PATCH},0
BEGIN
BLOCK \"StringFileInfo\"
BEGIN
BLOCK \"040904E4\"
BEGIN
VALUE \"CompanyName\", \"${CSS_AUTHOR}\"
VALUE \"FileDescription\", \"${CSS_DESCRIPTION}\"
VALUE \"FileVersion\", \"${CSS_VERSION_MAJOR}.${CSS_VERSION_MINOR}.${CSS_VERSION_PATCH}\"
VALUE \"InternalName\", \"${CMAKE_SHARED_MODULE_PREFIX}${CSS_COMPONENT_NAME}\"
VALUE \"LegalCopyright\", \"${CSS_COPYRIGHT}\"
VALUE \"OriginalFilename\", \"${CMAKE_SHARED_MODULE_PREFIX}${CSS_COMPONENT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\"
VALUE \"ProductName\", \"${CSS_COMPONENT_NAME}\"
VALUE \"ProductVersion\", \"${CSS_VERSION_MAJOR}.${CSS_VERSION_MINOR}.${CSS_VERSION_PATCH}\"
END
END
BLOCK \"VarFileInfo\"
BEGIN
VALUE \"Translation\", 0x409, 1252
END
END")
FILE(WRITE ${CSS_BUILD_DIR}/lib${CSS_COMPONENT_NAME}.rc "${CSS_RC_CONTENTS}")
add_library(libcss_shared SHARED ${CSS_PUBLIC_HEADER_FILES} ${CSS_ADDITIONAL_C_FILES} ${CSS_BUILD_DIR}/lib${CSS_COMPONENT_NAME}.rc)
else()
add_library(libcss_shared SHARED ${CSS_PUBLIC_HEADER_FILES} ${CSS_ADDITIONAL_C_FILES} SOVERSION ${CSS_SOVERSION})
endif()
set_target_properties(libcss_shared PROPERTIES OUTPUT_NAME ${CSS_COMPONENT_NAME})
if(CSS_ADDITIONAL_LIBS)
target_link_libraries(libcss_shared PUBLIC ${CSS_ADDITIONAL_LIBS})
endif(CSS_ADDITIONAL_LIBS)
if(CSS_ADDITIONAL_DIRS)
target_include_directories(libcss_shared PUBLIC ${CSS_ADDITIONAL_DIRS})
endif(CSS_ADDITIONAL_DIRS)
if(CSS_ADDITIONAL_DEFS)
target_include_directories(libcss_shared PUBLIC ${CSS_ADDITIONAL_DEFS})
endif(CSS_ADDITIONAL_DEFS)
if(CMAKE_COMPILER_IS_GNUCC)
target_compile_options(libcss_shared PRIVATE ${CSS_WARNFLAGS})
endif(CMAKE_COMPILER_IS_GNUCC)
install(TARGETS libcss_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
add_library(libcss_static STATIC ${CSS_PUBLIC_HEADER_FILES} ${CSS_ADDITIONAL_C_FILES})
set_target_properties(libcss_static PROPERTIES OUTPUT_NAME ${CSS_COMPONENT_NAME})
if(CSS_ADDITIONAL_LIBS)
target_link_libraries(libcss_static PUBLIC ${CSS_ADDITIONAL_LIBS})
endif(CSS_ADDITIONAL_LIBS)
if(CSS_ADDITIONAL_DIRS)
target_include_directories(libcss_static PUBLIC ${CSS_ADDITIONAL_DIRS})
endif(CSS_ADDITIONAL_DIRS)
if(CSS_ADDITIONAL_DEFS)
target_include_directories(libcss_static PUBLIC ${CSS_ADDITIONAL_DEFS})
endif(CSS_ADDITIONAL_DEFS)
if(CMAKE_COMPILER_IS_GNUCC)
target_compile_options(libcss_static PRIVATE ${CSS_WARNFLAGS})
endif(CMAKE_COMPILER_IS_GNUCC)
install(TARGETS libcss_static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(BUILD_STATIC_LIBS)
#from: https://cmake.org/pipermail/cmake/2010-October/040246.html
#This installs the headers into our hierarchy in the include file.
foreach(CSS_HEADER ${CSS_PUBLIC_HEADER_FILES})
string(REGEX MATCH "(.*)[/\\]" CSS_DIR ${CSS_HEADER})
install(FILES ${CSS_HEADER} DESTINATION ${CSS_DIR})
endforeach(CSS_HEADER ${CSS_PUBLIC_HEADER_FILES})
if(CSS_WITH_PKGCONFIG_SUPPORT)
set(CSS_PC ${CSS_BUILD_DIR}/lib${CSS_COMPONENT_NAME}.pc)
# This stuff is necessary to ensure that the dependency list
# in our .pc file is in the proper format
#Make pkg-config
set(CSS_EXC "${CMAKE_INSTALL_PREFIX}")
set(CSS_INC "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(CSS_LIB "${CMAKE_INSTALL_FULL_LIBDIR}")
if("${CSS_EXC}" STREQUAL "${CMAKE_INSTALL_PREFIX}")
set(CSS_EXC "\${prefix}")
endif()
if ("${CSS_INC}" STREQUAL "${CMAKE_INSTALL_PREFIX}/include")
set(CSS_INC "\${prefix}/include")
endif()
if ("${CSS_LIB}" STREQUAL "${CMAKE_INSTALL_PREFIX}/lib")
set(CSS_LIB "\${exec_prefix}/lib")
endif()
set(CSS_DEPS "")
foreach(CSS_LIB_DEP ${CSS_LIB_DEPEND_LIBS})
set(CSS_DEPS "${CSS_DEPS} -l${CSS_LIB_DEP}")
endforeach(CSS_LIB_DEP)
set(CSS_PKGCONFIG_CONTENTS "prefix=${CMAKE_INSTALL_PREFIX}
exec_prefix=${CSS_EXC}
libdir=${CSS_LIB}
includedir=${CSS_INC}
Name: lib${CSS_COMPONENT_NAME}
Description: ${CSS_DESCRIPTION}
URL: http://www.netsurf-browser.org/projects/${CSS_COMPONENT_NAME}/
Version: ${CSS_SOVERSION}
Requires: libparserutils, libwapcaplet
Cflags: -I\${includedir}
Libs: -L\${libdir} -l${CSS_COMPONENT_NAME}
Libs.private: ${CSS_DEPS}
")
file(WRITE ${CSS_PC} ${CSS_PKGCONFIG_CONTENTS})
install(FILES ${CSS_PC} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif(CSS_WITH_PKGCONFIG_SUPPORT)
#
#Test section
#
if (BUILD_TESTING)
if(BUILD_SHARED_LIBS)
add_executable(csdetect_shared ${CMAKE_SOURCE_DIR}/test/csdetect.c)
target_link_libraries(csdetect_shared libcss_shared)
add_test(NAME Character_set_detection_shared__UTF_Byte_Order_Mark_detection_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect/
COMMAND csdetect_shared bom.dat)
add_test(NAME Character_set_detection_shared__BOM_+_@charset_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect/
COMMAND csdetect_shared bom-charset.dat)
if(CSS_RUN_DISABLED_TESTS)
add_executable(css21_shared ${CMAKE_SOURCE_DIR}/test/css21.c)
target_link_libraries(css21_shared libcss_shared)
add_test(NAME Parsing_[SS2.1_specifics]_shared__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared simple.css)
add_test(NAME Parsing_[CSS2.1_specifics]_shared__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared allzengarden.css)
add_test(NAME Parsing_[CSS2.1_specifics]_shared__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared blocks.css)
add_test(NAME Parsing_[CSS2.1_specifics]_shared__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared malformed.css)
add_test(NAME Parsing_[CSS2.1_specifics]_shared__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared badcomment.css)
add_test(NAME Parsing_[CSS2.1_specifics]_shared__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_shared fontface.css)
add_executable(lex_shared ${CMAKE_SOURCE_DIR}/test/lex.c)
target_link_libraries(lex_shared libcss_shared)
add_test(NAME Lexing_shared__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared simple.css)
add_test(NAME Lexing_shared__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared allzengarden.css)
add_test(NAME Lexing_shared__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared blocks.css)
add_test(NAME Lexing_shared__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared malformed.css)
add_test(NAME Lexing_shared__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared badcomment.css)
add_test(NAME Lexing_shared__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_shared fontface.css)
endif(CSS_RUN_DISABLED_TESTS)
add_executable(lex-auto_shared ${CMAKE_SOURCE_DIR}/test/lex-auto.c)
target_link_libraries(lex-auto_shared libcss_shared)
add_test(NAME Automated_lexer_tests_shared__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_shared tests1.dat)
add_test(NAME Automated_lexer_tests_shared__More_complicated_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_shared tests2.dat)
add_test(NAME Automated_lexer_tests_shared__Regression_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_shared regression.dat)
add_executable(number_shared ${CMAKE_SOURCE_DIR}/test/number.c)
target_link_libraries(number_shared libcss_shared)
add_test(NAME Conversion_of_numbers_to_fixed_point_shared__Number_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/number
COMMAND number_shared number.dat)
if(CSS_DISABLED_TESTS)
add_executable(parse_shared ${CMAKE_SOURCE_DIR}/test/parse.c)
target_link_libraries(parse_shared libcss_shared)
add_test(NAME Parsing_[core_syntax]_shared__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared simple.css)
add_test(NAME Parsing_[core_syntax]_shared__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared allzengarden.css)
add_test(NAME Parsing_[core_syntax]_shared__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared blocks.css)
add_test(NAME Parsing_[core_syntax]_shared__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared malformed.css)
add_test(NAME Parsing_[core_syntax]_shared__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared badcomment.css)
add_test(NAME Parsing_[core_syntax]_shared__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_shared fontface.css)
endif(CSS_DISABLED_TESTS)
add_executable(parse-auto_shared ${CMAKE_SOURCE_DIR}/test/parse-auto.c)
target_link_libraries(parse-auto_shared libcss_shared)
add_test(NAME Automated_parser_tests_[bytecode]_shared__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared tests1.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__Selectors
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared selectors.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__@-rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared atrules.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__Colour_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared colours.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__HSL_Colour_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared colours-hsl.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__:nth-*_expressions
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared nth.dat)
add_test(NAME Automated_parser_tests_[bytecode]_shared__Properties
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_shared properties.dat)
add_executable(parse2-auto_shared ${CMAKE_SOURCE_DIR}/test/parse2-auto.c)
target_link_libraries(parse2-auto_shared libcss_shared)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared tests1.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Unexpected_EOF_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared eof.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Comment_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared comments.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Invalid_selector_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared selectors.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Illegal_value_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared illegal-values.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Malformed_declaration_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared malformed-declarations.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Unknown_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared unknown-properties.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Illegal_background-position_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared bgpos.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Aural_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared au.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Background_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared bg.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Border_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared border.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Font_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared font.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__List_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared list.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Margin_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared margin.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Outline_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared outline.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Overflow_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared overflow.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Padding_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared padding.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Multi-column_layout_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared multicol.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Flexbox_properties_and_shorthands_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared flexbox.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_shared__Length_unit_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_shared units.dat)
add_executable(select_shared ${CMAKE_SOURCE_DIR}/test/select.c)
target_link_libraries(select_shared libcss_shared)
add_test(NAME Automated_selection_engine_tests_shared__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/select
COMMAND select_shared tests1.dat)
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
if(CSS_RUN_DISABLED_TESTS)
add_executable(css21_static ${CMAKE_SOURCE_DIR}/test/css21.c)
target_link_libraries(css21_static libcss_static)
add_test(NAME Parsing_[SS2.1_specifics]_static__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static simple.css)
add_test(NAME Parsing_[CSS2.1_specifics]_static__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static allzengarden.css)
add_test(NAME Parsing_[CSS2.1_specifics]_static__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static blocks.css)
add_test(NAME Parsing_[CSS2.1_specifics]_static__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static malformed.css)
add_test(NAME Parsing_[CSS2.1_specifics]_static__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static badcomment.css)
add_test(NAME Parsing_[CSS2.1_specifics]_static__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND csdetect_static fontface.css)
add_executable(lex_static ${CMAKE_SOURCE_DIR}/test/lex.c)
target_link_libraries(lex_static libcss_static)
add_test(NAME Lexing_static__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static simple.css)
add_test(NAME Lexing_static__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static allzengarden.css)
add_test(NAME Lexing_static__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static blocks.css)
add_test(NAME Lexing_static__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static malformed.css)
add_test(NAME Lexing_static__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static badcomment.css)
add_test(NAME Lexing_static__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND lex_static fontface.css)
endif(CSS_RUN_DISABLED_TESTS)
add_executable(lex-auto_static ${CMAKE_SOURCE_DIR}/test/lex-auto.c)
target_link_libraries(lex-auto_static libcss_static)
add_test(NAME Automated_lexer_tests_static__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_static tests1.dat)
add_test(NAME Automated_lexer_tests_static__More_complicated_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_static tests2.dat)
add_test(NAME Automated_lexer_tests_static__Regression_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/lex
COMMAND lex-auto_static regression.dat)
add_executable(number_static ${CMAKE_SOURCE_DIR}/test/number.c)
target_link_libraries(number_static libcss_static)
add_test(NAME Conversion_of_numbers_to_fixed_point_static__Number_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/number
COMMAND number_static number.dat)
if(CSS_DISABLED_TESTS)
add_executable(parse_static ${CMAKE_SOURCE_DIR}/test/parse.c)
target_link_libraries(parse_static libcss_static)
add_test(NAME Parsing_[core_syntax]_static__Reasonably_simple_CSS_file_[semantically_invalid]
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static simple.css)
add_test(NAME Parsing_[core_syntax]_static__All_CSS_Zen_Garden_stylesheets_concatenated
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static allzengarden.css)
add_test(NAME Parsing_[core_syntax]_static__Basic_blocks_and_at-rule_syntax
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static blocks.css)
add_test(NAME Parsing_[core_syntax]_static__Malformed_declarations_from_the_CSS_2.1_spec
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static malformed.css)
add_test(NAME Parsing_[core_syntax]_static__Comment_inside_[_..._]_lacks_starting_*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static badcomment.css)
add_test(NAME Parsing_[core_syntax]_static__Various_@font-face_rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/css
COMMAND parse_static fontface.css)
endif(CSS_DISABLED_TESTS)
add_executable(parse-auto_static ${CMAKE_SOURCE_DIR}/test/parse-auto.c)
target_link_libraries(parse-auto_static libcss_static)
add_test(NAME Automated_parser_tests_[bytecode]_static__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static tests1.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__Selectors
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static selectors.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__@-rules
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static atrules.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__Colour_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static colours.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__HSL_Colour_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static colours-hsl.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__:nth-*_expressions
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static nth.dat)
add_test(NAME Automated_parser_tests_[bytecode]_static__Properties
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse
COMMAND parse-auto_static properties.dat)
add_executable(parse2-auto_static ${CMAKE_SOURCE_DIR}/test/parse2-auto.c)
target_link_libraries(parse2-auto_static libcss_static)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static tests1.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Unexpected_EOF_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static eof.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Comment_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static comments.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Invalid_selector_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static selectors.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Illegal_value_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static illegal-values.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Malformed_declaration_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static malformed-declarations.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Unknown_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static unknown-properties.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Illegal_background-position_values
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static bgpos.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Aural_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static au.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Background_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static bg.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Border_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static border.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Font_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static font.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__List_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static list.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Margin_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static margin.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Outline_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static outline.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Overflow_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static overflow.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Padding_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static padding.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Multi-column_layout_property_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static multicol.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Flexbox_properties_and_shorthands_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static flexbox.dat)
add_test(NAME Automated_parser_tests_[om_&_invalid]_static__Length_unit_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/parse2
COMMAND parse2-auto_static units.dat)
add_executable(select_static ${CMAKE_SOURCE_DIR}/test/select.c)
target_link_libraries(select_static libcss_static)
add_test(NAME Automated_selection_engine_tests_static__Basic_tests
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/select
COMMAND select_static tests1.dat)
endif(BUILD_STATIC_LIBS)
endif(BUILD_TESTING)