justbuild.cmake 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # Initialize global vars with values came from outside (from gitlab-ci)
  2. # This is main test suite which runs all the tests.
  3. set ( CI_PROJECT_DIR "$ENV{CI_PROJECT_DIR}" )
  4. set ( CTEST_BUILD_NAME "$ENV{CI_COMMIT_REF_NAME}" )
  5. set ( CTEST_CONFIGURATION_TYPE "$ENV{CTEST_CONFIGURATION_TYPE}" )
  6. set ( CTEST_CMAKE_GENERATOR "$ENV{CTEST_CMAKE_GENERATOR}" )
  7. set ( LIBS_BUNDLE "$ENV{LIBS_BUNDLE}" )
  8. set ( UNITY_BUILD "$ENV{UNITY_BUILD}" )
  9. set_property ( GLOBAL PROPERTY Label P$ENV{CI_PIPELINE_ID} J$ENV{CI_JOB_ID} )
  10. # platform specific options
  11. set ( CTEST_SITE "$ENV{CI_SERVER_NAME} build ${CTEST_CONFIGURATION_TYPE}" )
  12. if ( NOT WITH_GALERA )
  13. set (WITH_GALERA 0 )
  14. endif()
  15. # common test options
  16. set ( CONFIG_OPTIONS "WITH_ODBC=1;WITH_RE2=1;WITH_STEMMER=1;WITH_POSTGRESQL=1;WITH_EXPAT=1;BUILD_TESTING=0" )
  17. LIST ( APPEND CONFIG_OPTIONS "LIBS_BUNDLE=${LIBS_BUNDLE}" )
  18. LIST ( APPEND CONFIG_OPTIONS "WITH_GALERA=${WITH_GALERA}" )
  19. if ( NOT CTEST_SOURCE_DIRECTORY )
  20. set ( CTEST_SOURCE_DIRECTORY "${CI_PROJECT_DIR}")
  21. endif()
  22. # fallback to run without ctest
  23. if ( NOT CTEST_SOURCE_DIRECTORY )
  24. set ( CTEST_SOURCE_DIRECTORY "." )
  25. endif ()
  26. if ( NOT CTEST_CMAKE_GENERATOR )
  27. set ( CTEST_CMAKE_GENERATOR "Unix Makefiles" )
  28. endif ()
  29. if (UNITY_BUILD)
  30. LIST ( APPEND CONFIG_OPTIONS "CMAKE_UNITY_BUILD=${UNITY_BUILD}" )
  31. endif ()
  32. set ( CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/build" )
  33. SET ( CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE )
  34. #ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
  35. #######################################################################
  36. set ( CTESTCONFIG "${CTEST_BINARY_DIRECTORY}/CTestConfig.cmake" )
  37. file ( WRITE "${CTESTCONFIG}" "set ( CTEST_PROJECT_NAME \"Manticoresearch\" )\n" )
  38. file ( APPEND "${CTESTCONFIG}" "set ( CTEST_NIGHTLY_START_TIME \"01:00:00 UTC\" )\n" )
  39. file ( APPEND "${CTESTCONFIG}" "set ( CTEST_DROP_SITE_CDASH TRUE )\n" )
  40. # configure update (will log git rev id)
  41. find_program ( CTEST_GIT_COMMAND NAMES git )
  42. SET ( CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}" )
  43. SET ( CTEST_UPDATE_VERSION_ONLY ON )
  44. set ( CMAKE_CALL "${CMAKE_COMMAND} -G \"${CTEST_CMAKE_GENERATOR}\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_CONFIGURATION_TYPE}" )
  45. foreach ( OPTION ${CONFIG_OPTIONS} )
  46. set ( CMAKE_CALL "${CMAKE_CALL} -D${OPTION}" )
  47. endforeach ()
  48. set ( CTEST_CONFIGURE_COMMAND "${CMAKE_CALL} ${CTEST_SOURCE_DIRECTORY}" )
  49. # will not write and count warnings in auto-generated files of lexer
  50. set ( CTEST_CUSTOM_WARNING_EXCEPTION ".*flexsphinx.*" )
  51. # Do the test suite
  52. ctest_start ( "Continuous" )
  53. ctest_update ()
  54. ctest_configure ()
  55. include ( ProcessorCount )
  56. ProcessorCount ( N )
  57. if (NOT N EQUAL 0)
  58. if (NOT CTEST_CMAKE_GENERATOR STREQUAL "Visual Studio 16 2019")
  59. set ( CTEST_BUILD_FLAGS -j${N} )
  60. endif ()
  61. set ( ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N} )
  62. endif ()
  63. ctest_build ( RETURN_VALUE retcode )
  64. if ( retcode )
  65. MESSAGE ( FATAL_ERROR "tests failed with ${retcode} code" )
  66. endif ()