File: CMakeLists.txt

package info (click to toggle)
grcompiler 5.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 24,020 kB
  • sloc: cpp: 48,200; ansic: 7,670; sh: 4,427; makefile: 197; xml: 190; perl: 127; sed: 21
file content (72 lines) | stat: -rw-r--r-- 2,979 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
project(grc_regression_test)

include_directories(${compiler_SOURCE_DIR})

add_executable(GrcRegressionTest
    CompareFontTables.cpp 
    FileInput.cpp 
    GrcRtFileFont.cpp 
    GrcRegressionTest.cpp 
    $<TARGET_OBJECTS:TtfUtil>)
target_compile_definitions(GrcRegressionTest PRIVATE $<${BIGENDIAN_SYSTEM}:WORDS_BIGENDIAN>)
target_link_libraries(GrcRegressionTest generic)

if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
    target_compile_options(GrcRegressionTest PRIVATE /W3 /EHsc)
endif()


set(FONT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/fonts)

function(compile_test FONT VERSION PSNAME)
    string(REGEX REPLACE "Test(_v${VERSION})?$" "" _input ${FONT})
    string(REGEX REPLACE "(^.+)Test" "\\1Benchmark" _benchmark ${FONT})

    # Compile the font
    add_test(NAME compile_${FONT}
        COMMAND grcompiler -D -v${VERSION} ${ARGN} -e ${PROJECT_BINARY_DIR}/${FONT}.gdlerr.txt ${FONT_SOURCE_DIR}/${_input}Main.gdl ${FONT_SOURCE_DIR}/${_input}Input.ttf ${FONT}.ttf ${PSNAME})
    set_tests_properties(compile_${FONT} PROPERTIES
        ENVIRONMENT "GDLPP=$<TARGET_FILE:gdlpp>;LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${ICU_INCLUDE_DIR}/../lib"
#        ATTACHED_FILES ${PROJECT_BINARY_DIR}/${FONT}.gdlerr.log
        REQUIRED_FILES "${FONT_SOURCE_DIR}/${_input}Input.ttf;${FONT_SOURCE_DIR}/${_input}Main.gdl"
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR})


    # Run the regression tests
    add_test(NAME GrcRegressionTest_${FONT}
        COMMAND GrcRegressionTest -l ${PROJECT_BINARY_DIR}/${FONT}.grcregtest.log ${FONT_SOURCE_DIR}/${_benchmark}.ttf ${FONT}.ttf)
    set_tests_properties(GrcRegressionTest_${FONT} PROPERTIES
        DEPENDS compile_${FONT}
        REQUIRED_FILES "${FONT_SOURCE_DIR}/${_benchmark}.ttf;${FONT}.ttf"
#        ATTACHED_FILES ${PROJECT_BINARY_DIR}/${BENCHMARK_NAME}.grcregtest.log
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
    
    # Compare the output to the expected output
    add_test(NAME compare_${FONT}
        COMMAND ${CMAKE_COMMAND} -E compare_files ${FONT}.ttf ${FONT_SOURCE_DIR}/${_benchmark}.ttf)
    set_tests_properties(compare_${FONT} PROPERTIES
        DEPENDS compile_${FONT}
        REQUIRED_FILES "${FONT_SOURCE_DIR}/${_benchmark}.ttf;${FONT}.ttf"
        WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
endfunction()

function(get_icu_dirs)
    string(REGEX MATCH "^[0-9]+" icu_major_version ${ICU_VERSION})
    file(GLOB icuders RELATIVE ${FONT_SOURCE_DIR} CONFIGURE_DEPENDS 
        ${FONT_SOURCE_DIR}/icu*)
    list(TRANSFORM icuders REPLACE "icu([0-9]+)$" "\\1")
    list(SORT icuders)
    list(REVERSE icuders)
    foreach(ver IN LISTS icuders)
        if (${ver} LESS_EQUAL ${icu_major_version})
            list(APPEND ICUDIRS "${ver}")
        endif()
    endforeach()
    set(ICUDIRS ${ICUDIRS} PARENT_SCOPE)
endfunction()

compile_test(SchTest 4 "")
compile_test(CharisTest 2 "")
compile_test(PigLatinTest_v2 2 "PigLatin GrRegTest V2" -p)
compile_test(PigLatinTest_v3 3 "")
compile_test(PadaukTest_v3 3 "" -offsets -p)