mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +08:00
9c1806ae46
- Disable warning C4127 "conditional expression is constant" globally in curl_setup.h for when building with Microsoft's compiler. This mainly affects building with the Visual Studio project files found in the projects dir. Prior to this change the cmake and winbuild build systems already disabled 4127 globally for when building with Microsoft's compiler. Also, 4127 was already disabled for all build systems in the limited circumstance of the WHILE_FALSE macro which disabled the warning specifically for while(0). This commit removes the WHILE_FALSE macro and all other cruft in favor of disabling globally in curl_setup. Background: We have various macros that cause 0 or 1 to be evaluated, which would cause warning C4127 in Visual Studio. For example this causes it: #define Curl_resolver_asynch() 1 Full behavior is not clearly defined and inconsistent across versions. However it is documented that since VS 2015 Update 3 Microsoft has addressed this somewhat but not entirely, not warning on while(true) for example. Prior to this change some C4127 warnings occurred when I built with Visual Studio using the generated projects in the projects dir. Closes https://github.com/curl/curl/pull/4658
60 lines
2.1 KiB
CMake
60 lines
2.1 KiB
CMake
set(TARGET_LABEL_PREFIX "Test server ")
|
|
|
|
if(MSVC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4306")
|
|
endif()
|
|
|
|
function(SETUP_EXECUTABLE TEST_NAME) # ARGN are the files in the test
|
|
add_executable(${TEST_NAME} ${ARGN})
|
|
string(TOUPPER ${TEST_NAME} UPPER_TEST_NAME)
|
|
|
|
include_directories(
|
|
${CURL_SOURCE_DIR}/lib # To be able to reach "curl_setup_once.h"
|
|
${CURL_BINARY_DIR}/lib # To be able to reach "curl_config.h"
|
|
${CURL_BINARY_DIR}/include # To be able to reach "curl/curl.h"
|
|
)
|
|
if(USE_ARES)
|
|
include_directories(${CARES_INCLUDE_DIR})
|
|
endif()
|
|
|
|
target_link_libraries(${TEST_NAME} ${CURL_LIBS})
|
|
|
|
# Test servers simply are standalone programs that do not use libcurl
|
|
# library. For convenience and to ease portability of these servers,
|
|
# some source code files from the libcurl subdirectory are also used
|
|
# to build the servers. In order to achieve proper linkage of these
|
|
# files on Win32 targets it is necessary to build the test servers
|
|
# with CURL_STATICLIB defined, independently of how libcurl is built.
|
|
if(BUILD_SHARED_LIBS)
|
|
set_target_properties(${TEST_NAME} PROPERTIES
|
|
COMPILE_DEFINITIONS CURL_STATICLIB) # ${UPPER_TEST_NAME}
|
|
endif()
|
|
set_target_properties(${TEST_NAME} PROPERTIES
|
|
PROJECT_LABEL "${TARGET_LABEL_PREFIX}${TEST_NAME}")
|
|
endfunction()
|
|
|
|
|
|
transform_makefile_inc("Makefile.inc"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
|
|
include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
|
|
|
|
foreach(EXECUTABLE_NAME ${noinst_PROGRAMS})
|
|
setup_executable(${EXECUTABLE_NAME} ${${EXECUTABLE_NAME}_SOURCES})
|
|
endforeach()
|
|
|
|
|
|
# SET(useful
|
|
# getpart.c getpart.h
|
|
# ${CURL_SOURCE_DIR}/lib/strequal.c
|
|
# ${CURL_SOURCE_DIR}/lib/base64.c
|
|
# ${CURL_SOURCE_DIR}/lib/mprintf.c
|
|
# ${CURL_SOURCE_DIR}/lib/memdebug.c
|
|
# ${CURL_SOURCE_DIR}/lib/timeval.c
|
|
# )
|
|
|
|
# SETUP_EXECUTABLE(sws sws.c util.c util.h ${useful})
|
|
# SETUP_EXECUTABLE(resolve resolve.c util.c util.h ${useful})
|
|
# SETUP_EXECUTABLE(sockfilt sockfilt.c util.c util.h ${useful} ${CURL_SOURCE_DIR}/lib/inet_pton.c)
|
|
# SETUP_EXECUTABLE(getpart testpart.c ${useful})
|
|
# SETUP_EXECUTABLE(tftpd tftpd.c util.c util.h ${useful} tftp.h)
|