Annotation of embedaddon/curl/tests/libtest/CMakeLists.txt, revision 1.1.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>