CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. cmake_minimum_required ( VERSION 3.12 )
  2. FOREACH ( policy CMP0048 CMP0110 )
  3. IF (POLICY ${policy})
  4. CMAKE_POLICY(SET ${policy} NEW)
  5. ENDIF ()
  6. ENDFOREACH ()
  7. # Set a default build type for single-configuration CMake generators if no build type is set.
  8. if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
  9. set (CMAKE_BUILD_TYPE Release)
  10. endif ()
  11. PROJECT ( SPHINXCLIENT
  12. LANGUAGES C
  13. VERSION 0.0.1
  14. DESCRIPTION "Pure C searchd client API library"
  15. HOMEPAGE_URL "https://manticoresearch.com" )
  16. # our mega-lib
  17. add_library ( sphinxclient STATIC sphinxclient.c )
  18. if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
  19. target_compile_options ( sphinxclient PRIVATE /clang:-Wall )
  20. target_compile_definitions ( sphinxclient PRIVATE _WINSOCK_DEPRECATED_NO_WARNINGS=1 )
  21. else ()
  22. target_compile_options ( sphinxclient PRIVATE -g3 -Wall -O0 )
  23. endif ()
  24. target_link_libraries ( sphinxclient PRIVATE $<$<PLATFORM_ID:Windows>:wsock32> )
  25. if (NOT BUILD_TESTING OR DISABLE_GTESTS OR WIN32 OR TEST_SPECIAL_EXTERNAL )
  26. return()
  27. endif()
  28. # testing stuff
  29. add_executable (testcli test.c)
  30. target_link_libraries ( testcli sphinxclient )
  31. configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/smoke_data.csv ${CMAKE_CURRENT_BINARY_DIR}/smoke_data.csv COPYONLY )
  32. configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/smoke_test.conf ${CMAKE_CURRENT_BINARY_DIR}/smoke_test.conf COPYONLY )
  33. # since cmake 3.18 names need fixup
  34. include(fixup_test_name)
  35. fixup_test_name ( test "Perform API smoke test" )
  36. add_test ( NAME ${test} COMMAND ${CMAKE_COMMAND}
  37. -D SEARCHD=$<TARGET_FILE:searchd>
  38. -D INDEXER=$<TARGET_FILE:indexer>
  39. -D CLI=$<TARGET_FILE:testcli>
  40. -D SRCDIR=${CMAKE_CURRENT_SOURCE_DIR}
  41. -P ${CMAKE_CURRENT_SOURCE_DIR}/smoke.cmake
  42. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )
  43. SET_TESTS_PROPERTIES ( ${test} PROPERTIES LABELS API )