Annotation of embedaddon/curl/tests/libtest/CMakeLists.txt, revision 1.1
1.1 ! misho 1: #***************************************************************************
! 2: # _ _ ____ _
! 3: # Project ___| | | | _ \| |
! 4: # / __| | | | |_) | |
! 5: # | (__| |_| | _ <| |___
! 6: # \___|\___/|_| \_\_____|
! 7: #
! 8: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
! 9: #
! 10: # This software is licensed as described in the file COPYING, which
! 11: # you should have received as part of this distribution. The terms
! 12: # are also available at https://curl.haxx.se/docs/copyright.html.
! 13: #
! 14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 15: # copies of the Software, and permit persons to whom the Software is
! 16: # furnished to do so, under the terms of the COPYING file.
! 17: #
! 18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 19: # KIND, either express or implied.
! 20: #
! 21: ###########################################################################
! 22: set(TARGET_LABEL_PREFIX "Test ")
! 23:
! 24: function(setup_test TEST_NAME) # ARGN are the files in the test
! 25: add_executable( ${TEST_NAME} ${ARGN} )
! 26: string(TOUPPER ${TEST_NAME} UPPER_TEST_NAME)
! 27:
! 28: include_directories(
! 29: ${CURL_SOURCE_DIR}/lib # To be able to reach "curl_setup_once.h"
! 30: ${CURL_BINARY_DIR}/lib # To be able to reach "curl_config.h"
! 31: ${CURL_BINARY_DIR}/include # To be able to reach "curl/curl.h"
! 32: ${CURL_SOURCE_DIR}/tests/libtest # To be able to build generated tests
! 33: )
! 34: if(USE_ARES)
! 35: include_directories(${CARES_INCLUDE_DIR})
! 36: endif()
! 37:
! 38: target_link_libraries(${TEST_NAME} libcurl ${CURL_LIBS})
! 39:
! 40: set_target_properties(${TEST_NAME}
! 41: PROPERTIES COMPILE_DEFINITIONS ${UPPER_TEST_NAME})
! 42: set_target_properties(${TEST_NAME}
! 43: PROPERTIES PROJECT_LABEL "${TARGET_LABEL_PREFIX}${TEST_NAME}")
! 44: endfunction()
! 45:
! 46:
! 47: transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
! 48: include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
! 49:
! 50: foreach(TEST_NAME ${noinst_PROGRAMS})
! 51: if(DEFINED ${TEST_NAME}_SOURCES)
! 52: setup_test(${TEST_NAME} ${${TEST_NAME}_SOURCES})
! 53: else()
! 54: setup_test(${TEST_NAME} ${nodist_${TEST_NAME}_SOURCES})
! 55: endif()
! 56: endforeach()
! 57:
! 58: # Allows for hostname override to make tests machine independent.
! 59: # TODO this cmake build assumes a shared build, detect static linking here!
! 60: if(NOT WIN32)
! 61: add_library(hostname MODULE sethostname.c sethostname.h)
! 62: # Output to .libs for compatibility with autotools, the test data expects a
! 63: # library at (tests)/libtest/.libs/libhostname.so
! 64: set_target_properties(hostname PROPERTIES
! 65: LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.libs)
! 66: if(HIDES_CURL_PRIVATE_SYMBOLS)
! 67: set_property(TARGET hostname APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS")
! 68: set_property(TARGET hostname APPEND PROPERTY COMPILE_FLAGS ${CURL_CFLAG_SYMBOLS_HIDE})
! 69: endif()
! 70: endif()
! 71:
! 72: add_custom_command(
! 73: OUTPUT lib1521.c
! 74: COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/mk-lib1521.pl < ${CURL_SOURCE_DIR}/include/curl/curl.h > lib1521.c
! 75: DEPENDS
! 76: "${CMAKE_CURRENT_SOURCE_DIR}/mk-lib1521.pl"
! 77: "${CURL_SOURCE_DIR}/include/curl/curl.h"
! 78: VERBATIM)
! 79:
! 80: set_property(TARGET chkdecimalpoint
! 81: APPEND PROPERTY COMPILE_DEFINITIONS "CURLX_NO_MEMORY_CALLBACKS;CURL_STATICLIB")
! 82:
! 83: # # files used only in some libcurl test programs
! 84: # SET(TESTUTIL testutil.c testutil.h)
! 85:
! 86: # # these files are used in every single test program below
! 87: # SET(SUPPORTFILES first.c test.h)
! 88:
! 89: # # These are all libcurl test programs
! 90: # SET(noinst_PROGRAMS
! 91: # lib500 lib501 lib502 lib503 lib504 lib505 lib506
! 92: # lib507 lib508 lib510 lib511 lib512 lib513 lib514 lib515 lib516
! 93: # lib517 lib518 lib519 lib520 lib521 lib523 lib524 lib525 lib526
! 94: # #lib527
! 95: # #lib529
! 96: # lib530
! 97: # #lib532
! 98: # lib533 lib536 lib537 lib540 lib541 lib542 lib543
! 99: # lib544
! 100: # #lib545
! 101: # lib547
! 102: # #lib548
! 103: # lib549 lib552 lib553 lib554 lib555 lib556
! 104: # lib539 lib557
! 105: # lib560
! 106: # )
! 107:
! 108: # SET(noinst_PROGRAMS_USE_TESTUTIL
! 109: # lib502 lib503 lib504
! 110: # lib507
! 111: # lib525 lib526 lib527
! 112: # lib529
! 113: # lib530
! 114: # lib532
! 115: # lib533 lib536
! 116: # lib555
! 117: # )
! 118:
! 119: # MACRO(ADD_TESTUTIL_IF_NECESSARY TEST_NAME)
! 120: # LIST(FIND noinst_PROGRAMS_USE_TESTUTIL ${TEST_NAME} USES_TESTUTIL)
! 121: # IF(NOT ${USES_TESTUTIL} EQUAL -1)
! 122: # LIST(APPEND SOURCE ${TESTUTIL}) # Need TestUtil
! 123: # ENDIF()
! 124: # ENDMACRO()
! 125:
! 126: # # General case
! 127: # FOREACH(TEST_NAME ${noinst_PROGRAMS})
! 128: # SET(SOURCE "${TEST_NAME}.c" ${SUPPORTFILES})
! 129: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 130: # SETUP_TEST(${TEST_NAME} ${SOURCE})
! 131: # ENDFOREACH()
! 132:
! 133: # # Special cases
! 134: # SET(TEST_NAME lib527)
! 135: # SET(SOURCE "lib526.c" ${SUPPORTFILES})
! 136: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 137: # SETUP_TEST(${TEST_NAME} ${SOURCE})
! 138:
! 139: # SET(TEST_NAME lib529)
! 140: # SET(SOURCE "lib525.c" ${SUPPORTFILES})
! 141: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 142: # SETUP_TEST(${TEST_NAME} ${SOURCE})
! 143:
! 144: # SET(TEST_NAME lib532)
! 145: # SET(SOURCE "lib526.c" ${SUPPORTFILES})
! 146: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 147: # SETUP_TEST(${TEST_NAME} ${SOURCE})
! 148:
! 149: # SET(TEST_NAME lib545)
! 150: # SET(SOURCE "lib544.c" ${SUPPORTFILES})
! 151: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 152: # SETUP_TEST(${TEST_NAME} ${SOURCE})
! 153:
! 154: # SET(TEST_NAME lib548)
! 155: # SET(SOURCE "lib547.c" ${SUPPORTFILES})
! 156: # ADD_TESTUTIL_IF_NECESSARY(${TEST_NAME})
! 157: # SETUP_TEST(${TEST_NAME} ${SOURCE})
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>