1#*************************************************************************** 2# _ _ ____ _ 3# Project ___| | | | _ \| | 4# / __| | | | |_) | | 5# | (__| |_| | _ <| |___ 6# \___|\___/|_| \_\_____| 7# 8# Copyright (C) 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.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# SPDX-License-Identifier: curl 22# 23########################################################################### 24 25# Get 'noinst_PROGRAMS', '<target>_SOURCES' variables 26curl_transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") 27include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") 28 29set_source_files_properties("../../lib/memdebug.c" "../../lib/curl_multibyte.c" PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON) 30 31foreach(_target IN LISTS noinst_PROGRAMS) 32 set(_target_name "${_target}") 33 add_executable(${_target_name} EXCLUDE_FROM_ALL ${${_target}_SOURCES}) 34 add_dependencies(testdeps ${_target_name}) 35 target_include_directories(${_target_name} PRIVATE 36 "${PROJECT_BINARY_DIR}/lib" # for "curl_config.h" 37 "${PROJECT_SOURCE_DIR}/lib" # for "curl_setup.h" 38 "${PROJECT_SOURCE_DIR}/src" # for "tool_binmod.h", "tool_xattr.h" 39 ) 40 target_link_libraries(${_target_name} ${CURL_LIBS}) 41 # Test servers simply are standalone programs that do not use libcurl 42 # library. For convenience and to ease portability of these servers, 43 # some source code files from the libcurl subdirectory are also used 44 # to build the servers. In order to achieve proper linkage of these 45 # files on Windows targets it is necessary to build the test servers 46 # with CURL_STATICLIB defined, independently of how libcurl is built. 47 if(WIN32) 48 set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_STATICLIB") 49 endif() 50 # getaddrinfo/freeaddrinfo overrides break UNITY build by overriding them 51 # before including system headers. Server code doesn't need these overrides, 52 # so it's safe to disable them globally. 53 set_property(TARGET ${_target_name} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_NO_GETADDRINFO_OVERRIDE") 54 set_target_properties(${_target_name} PROPERTIES 55 OUTPUT_NAME "${_target}" 56 PROJECT_LABEL "Test server ${_target}") 57endforeach() 58