File: add_quickstart_test.cmake

package info (click to toggle)
simdjson 4.2.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,936 kB
  • sloc: cpp: 171,612; ansic: 19,122; sh: 1,126; python: 842; makefile: 47; ruby: 25; javascript: 13
file content (50 lines) | stat: -rw-r--r-- 1,592 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
# TODO run amalgamate first!
function(add_quickstart_test TEST_NAME SOURCE_FILE)
  cmake_parse_arguments(PARSE_ARGV 2 ARGS "NO_EXCEPTIONS;NATIVE_ARCH" "" "CXX_STANDARD;LABELS")

  # Standard compiler flags
  if (MSVC)
    list(APPEND QUICKSTART_FLAGS /WX)
  else()
    list(APPEND QUICKSTART_FLAGS -Werror)
  endif()

  # Native architecture compiler flag
  if (ARGS_NATIVE_ARCH)
    if (MSVC)
      message(ERROR "MSVC quickstart native compile not supported because we don't know the right flag to pass to MSVC yet")
    else()
      list(APPEND QUICKSTART_FLAGS -march=native)
    endif()
  endif()

  # C++ standard compiler flag
  if (MSVC)
    if (ARGS_CXX_STANDARD)
      list(APPEND QUICKSTART_FLAGS /std:${ARGS_CXX_STANDARD})
    endif()
  else()
    if (ARGS_CXX_STANDARD)
      list(APPEND QUICKSTART_FLAGS -std=${ARGS_CXX_STANDARD})
    endif()
  endif()

  # No Exceptions compiler flag
  if (ARGS_NO_EXCEPTIONS)
    if (NOT MSVC)
      list(APPEND QUICKSTART_FLAGS -fno-exceptions)
    endif()
  endif()

  add_test(
    NAME ${TEST_NAME}
    COMMAND ${CMAKE_CXX_COMPILER} ${QUICKSTART_FLAGS} -I${PROJECT_SOURCE_DIR}/include -I${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/src/simdjson.cpp ${SOURCE_FILE}
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/examples/quickstart
  )
  list(APPEND ARGS_LABELS quickstart compile no_mingw)
  set_property(TEST ${TEST_NAME} APPEND PROPERTY LABELS ${ARGS_LABELS})
  set_property(
    TEST ${TEST_NAME}
    APPEND PROPERTY DEPENDS simdjson-source ${PROJECT_SOURCE_DIR}/examples/quickstart/${SOURCE_FILE}
  )
endfunction(add_quickstart_test)