diff --git a/CMakeLists.txt b/CMakeLists.txt index cb6afd1f0..c924a5044 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,7 +141,7 @@ endif() message(STATUS "Git Revision ${GIT_REVISION}") # MSVC compatibility with system headers -add_definitions(-DNONAMELESSUNION) +add_compile_definitions(NONAMELESSUNION) # Make the detected version available as default version for all subprojects set(FREERDP_DEFAULT_PROJECT_VERSION ${FREERDP_VERSION} CACHE STRING INTERNAL) @@ -151,18 +151,18 @@ set(FREERDP_INCLUDE_DIR "include/${FREERDP_MAJOR_DIR}/") option(WITH_SMARTCARD_EMULATE "Emulate smartcards instead of redirecting readers" ON) if(WITH_SMARTCARD_EMULATE) - add_definitions(-DWITH_SMARTCARD_EMULATE) + add_compile_definitions(WITH_SMARTCARD_EMULATE) find_package(ZLIB REQUIRED) endif() option(WITH_FREERDP_DEPRECATED "Build FreeRDP deprecated symbols" OFF) if(WITH_FREERDP_DEPRECATED) - add_definitions(-DWITH_FREERDP_DEPRECATED) + add_compile_definitions(WITH_FREERDP_DEPRECATED) endif() option(WITH_FREERDP_DEPRECATED_COMMANDLINE "Build FreeRDP deprecated command line options" OFF) if(WITH_FREERDP_DEPRECATED_COMMANDLINE) - add_definitions(-DWITH_FREERDP_DEPRECATED_COMMANDLINE) + add_compile_definitions(WITH_FREERDP_DEPRECATED_COMMANDLINE) endif() # Make paths absolute @@ -196,7 +196,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) option(CTEST_OUTPUT_ON_FAILURE ON "show verbose output on CTest failures") if(BUILD_TESTING_INTERNAL) set(EXPORT_ALL_SYMBOLS ON CACHE BOOL "testing default" FORCE) - add_definitions(-DBUILD_TESTING_INTERNAL) + add_compile_definitions(BUILD_TESTING_INTERNAL) elseif(BUILD_TESTING) set(EXPORT_ALL_SYMBOLS OFF CACHE BOOL "testing default" FORCE) else() @@ -205,7 +205,7 @@ endif() if(EXPORT_ALL_SYMBOLS) # set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - add_definitions(-DEXPORT_ALL_SYMBOLS) + add_compile_definitions(EXPORT_ALL_SYMBOLS) endif(EXPORT_ALL_SYMBOLS) # Compiler-specific flags @@ -236,11 +236,10 @@ if(CMAKE_COMPILER_IS_GNUCC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls") endif() endif() - if(CMAKE_BUILD_TYPE STREQUAL "Release") - add_definitions(-DNDEBUG) - else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") - endif() + add_compile_definitions("$<$:NDEBUG>") + add_compile_definitions("$<$:NDEBUG>") + add_compile_options("$<$:-g>") + add_compile_options("$<$:-g>") endif() set(THREAD_PREFER_PTHREAD_FLAG TRUE) @@ -330,13 +329,9 @@ if(MSVC) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) - if(CMAKE_BUILD_TYPE STREQUAL "Release") + add_compile_options("$<$:/Zi>") - else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Zi") - endif() - - add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) + add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE) endif() if(ANDROID) @@ -346,10 +341,10 @@ if(ANDROID) endif() if(WIN32) - add_definitions(-DUNICODE -D_UNICODE) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) - add_definitions(-DWIN32_LEAN_AND_MEAN) - add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS) + add_compile_definitions(UNICODE _UNICODE) + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) + add_compile_definitions(WIN32_LEAN_AND_MEAN) + add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS) set(CMAKE_DL_LIBS "") set(CMAKE_USE_RELATIVE_PATH ON) @@ -360,13 +355,13 @@ if(WIN32) endif() if(CMAKE_WINDOWS_VERSION STREQUAL "WINXP") - add_definitions(-DWINVER=0x0501 -D_WIN32_WINNT=0x0501) + add_compile_definitions(WINVER=0x0501 _WIN32_WINNT=0x0501) elseif(CMAKE_WINDOWS_VERSION STREQUAL "WIN7") - add_definitions(-DWINVER=0x0601 -D_WIN32_WINNT=0x0601) + add_compile_definitions(WINVER=0x0601 _WIN32_WINNT=0x0601) elseif(CMAKE_WINDOWS_VERSION STREQUAL "WIN8") - add_definitions(-DWINVER=0x0602 -D_WIN32_WINNT=0x0602) + add_compile_definitions(WINVER=0x0602 _WIN32_WINNT=0x0602) elseif(CMAKE_WINDOWS_VERSION STREQUAL "WIN10") - add_definitions(-DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00) + add_compile_definitions(WINVER=0x0A00 _WIN32_WINNT=0x0A00) endif() # Set product and vendor for dll and exe version information. @@ -382,7 +377,7 @@ if(WIN32) endif() endif() -add_definitions(-DFREERDP_EXPORTS) +add_compile_definitions(FREERDP_EXPORTS) # Mac OS X if(APPLE) @@ -422,15 +417,13 @@ if(ANDROID) endif() endif() - if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - add_definitions(-DNDK_DEBUG=1) + add_compile_definitions("$<$:NDK_DEBUG=1>") - # NOTE: Manually add -gdwarf-3, as newer toolchains default to -gdwarf-4, - # which is not supported by the gdbserver binary shipped with - # the android NDK (tested with r9b) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG} -gdwarf-3") - endif() - set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -llog") + # NOTE: Manually add -gdwarf-3, as newer toolchains default to -gdwarf-4, + # which is not supported by the gdbserver binary shipped with + # the android NDK (tested with r9b) + add_compile_options("$<$:-gdwarf-3>") + add_link_options(-llog) # CMAKE_PREFIX_PATH detection is broken in most Android toolchain files # Append it to CMAKE_FIND_ROOT_PATH and avoid potential duplicates @@ -544,8 +537,8 @@ if(WITH_LIBRESSL) set(OPENSSL_CRYPTO_LIBRARIES ${LIBRESSL_LIBRARIES}) set(WITH_OPENSSL ON) set(OPENSSL_FOUND ON) - add_definitions("-DWITH_LIBRESSL") - add_definitions("-DWITH_OPENSSL") + add_compile_definitions("WITH_LIBRESSL") + add_compile_definitions("WITH_OPENSSL") else() find_feature(OpenSSL ${OPENSSL_FEATURE_TYPE} ${OPENSSL_FEATURE_PURPOSE} ${OPENSSL_FEATURE_DESCRIPTION}) find_feature(MbedTLS ${MBEDTLS_FEATURE_TYPE} ${MBEDTLS_FEATURE_PURPOSE} ${MBEDTLS_FEATURE_DESCRIPTION}) @@ -587,13 +580,13 @@ endif() set(WITH_OPENH264 ${OPENH264_FOUND}) if(OPENSSL_FOUND) - add_definitions("-DWITH_OPENSSL") + add_compile_definitions("WITH_OPENSSL") message(STATUS "Using OpenSSL Version: ${OPENSSL_VERSION}") include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR}) endif() if(MBEDTLS_FOUND) - add_definitions("-DWITH_MBEDTLS") + add_compile_definitions("WITH_MBEDTLS") endif() if(WITH_OPENH264 OR WITH_MEDIA_FOUNDATION OR WITH_VIDEO_FFMPEG OR WITH_MEDIACODEC) diff --git a/channels/rdpdr/client/CMakeLists.txt b/channels/rdpdr/client/CMakeLists.txt index 3e60c2b46..b996aed37 100644 --- a/channels/rdpdr/client/CMakeLists.txt +++ b/channels/rdpdr/client/CMakeLists.txt @@ -22,7 +22,7 @@ define_channel_client("rdpdr") include(CheckFunctionExists) check_function_exists(getmntent_r FREERDP_HAVE_GETMNTENT_R) if(FREERDP_HAVE_GETMNTENT_R) - add_definitions(-DFREERDP_HAVE_GETMNTENT_R) + add_compile_definitions(FREERDP_HAVE_GETMNTENT_R) endif() set(${MODULE_PREFIX}_SRCS diff --git a/channels/rdpear/common/test/CMakeLists.txt b/channels/rdpear/common/test/CMakeLists.txt index c5751f2b9..0a09a4ac0 100644 --- a/channels/rdpear/common/test/CMakeLists.txt +++ b/channels/rdpear/common/test/CMakeLists.txt @@ -15,8 +15,8 @@ create_test_sourcelist(TEST_RDPEAR_SRCS TestRdpear.c ${TEST_RDPEAR_TESTS}) add_executable(${MODULE_NAME} ${TEST_RDPEAR_SRCS}) -add_definitions(-DTESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") -add_definitions(-DTESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") +add_compile_definitions(TESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") +add_compile_definitions(TESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") target_link_libraries(${MODULE_NAME} freerdp winpr freerdp-client) diff --git a/channels/rdpecam/client/CMakeLists.txt b/channels/rdpecam/client/CMakeLists.txt index 6e67d955e..a8028c309 100644 --- a/channels/rdpecam/client/CMakeLists.txt +++ b/channels/rdpecam/client/CMakeLists.txt @@ -26,19 +26,19 @@ find_package(FFmpeg REQUIRED COMPONENTS SWSCALE) find_package(V4L) if(V4L_FOUND) set(WITH_V4L ON) - add_definitions("-DWITH_V4L") + add_compile_definitions("WITH_V4L") else() message(FATAL_ERROR "libv4l-dev required for CHANNEL_RDPECAM_CLIENT") endif() option(RDPECAM_INPUT_FORMAT_H264 "[MS-RDPECAM] Enable H264 camera format (passthrough)" ON) if(RDPECAM_INPUT_FORMAT_H264) - add_definitions("-DWITH_INPUT_FORMAT_H264") + add_compile_definitions("WITH_INPUT_FORMAT_H264") endif() option(RDPECAM_INPUT_FORMAT_MJPG "[MS-RDPECAM] Enable MJPG camera format" ON) if(RDPECAM_INPUT_FORMAT_MJPG) - add_definitions("-DWITH_INPUT_FORMAT_MJPG") + add_compile_definitions("WITH_INPUT_FORMAT_MJPG") endif() include_directories(SYSTEM ${SWSCALE_INCLUDE_DIRS}) diff --git a/channels/tsmf/client/CMakeLists.txt b/channels/tsmf/client/CMakeLists.txt index 567875922..51ae4c5fc 100644 --- a/channels/tsmf/client/CMakeLists.txt +++ b/channels/tsmf/client/CMakeLists.txt @@ -27,7 +27,7 @@ endif() if(WITH_GSTREAMER_1_0) if(gstreamer_FOUND) - add_definitions(-DWITH_GSTREAMER_1_0) + add_compile_definitions(WITH_GSTREAMER_1_0) else() message(WARNING "gstreamer not detected, disabling support") endif() diff --git a/channels/tsmf/client/gstreamer/CMakeLists.txt b/channels/tsmf/client/gstreamer/CMakeLists.txt index 1f724399e..75c15d7eb 100644 --- a/channels/tsmf/client/gstreamer/CMakeLists.txt +++ b/channels/tsmf/client/gstreamer/CMakeLists.txt @@ -45,7 +45,7 @@ else() endif() if(X11_Xext_FOUND) - add_definitions(-DWITH_XEXT=1) + add_compile_definitions(WITH_XEXT=1) endif() endif() diff --git a/ci/cmake-preloads/config-ios-shared.txt b/ci/cmake-preloads/config-ios-shared.txt index a18d7fa1a..41ca459f9 100644 --- a/ci/cmake-preloads/config-ios-shared.txt +++ b/ci/cmake-preloads/config-ios-shared.txt @@ -15,4 +15,5 @@ set(WITH_FFMPEG OFF CACHE BOOL "iOS preload") set(WITH_SWSCALE OFF CACHE BOOL "iOS preload") set(WITH_SIMD ON CACHE BOOL "iOS preload") set(WITH_OPUS OFF CACHE BOOL "iOS preload") +set(WITH_MANPAGES OFF CACHE BOOL "iOS preload") set(BUILD_SHARED_LIBS ON CACHE BOOL "iOS preload") diff --git a/ci/cmake-preloads/config-ios.txt b/ci/cmake-preloads/config-ios.txt index 85df011f4..37dae19b6 100644 --- a/ci/cmake-preloads/config-ios.txt +++ b/ci/cmake-preloads/config-ios.txt @@ -15,4 +15,5 @@ set(WITH_FFMPEG OFF CACHE BOOL "iOS preload") set(WITH_SWSCALE OFF CACHE BOOL "iOS preload") set(WITH_SIMD ON CACHE BOOL "iOS preload") set(WITH_OPUS OFF CACHE BOOL "iOS preload") +set(WITH_MANPAGES OFF CACHE BOOL "iOS preload") set(BUILD_SHARED_LIBS OFF CACHE BOOL "iOS preload") diff --git a/client/SDL/CMakeLists.txt b/client/SDL/CMakeLists.txt index 490cca260..72d2a0d8a 100644 --- a/client/SDL/CMakeLists.txt +++ b/client/SDL/CMakeLists.txt @@ -52,10 +52,10 @@ else() endif() if(WITH_DEBUG_SDL_EVENTS) - add_definitions(-DWITH_DEBUG_SDL_EVENTS) + add_compile_definitions(WITH_DEBUG_SDL_EVENTS) endif() if(WITH_DEBUG_SDL_KBD_EVENTS) - add_definitions(-DWITH_DEBUG_SDL_KBD_EVENTS) + add_compile_definitions(WITH_DEBUG_SDL_KBD_EVENTS) endif() include(CMakeDependentOption) diff --git a/client/SDL/SDL2/dialogs/CMakeLists.txt b/client/SDL/SDL2/dialogs/CMakeLists.txt index d86b5345a..4539b7a69 100644 --- a/client/SDL/SDL2/dialogs/CMakeLists.txt +++ b/client/SDL/SDL2/dialogs/CMakeLists.txt @@ -56,7 +56,7 @@ find_sdl_component(SDL2_ttf) option(WITH_SDL_IMAGE_DIALOGS "Build with SDL_image support (recommended)" OFF) if(WITH_SDL_IMAGE_DIALOGS) find_sdl_component(SDL2_image) - add_definitions(-DWITH_SDL_IMAGE_DIALOGS) + add_compile_definitions(WITH_SDL_IMAGE_DIALOGS) endif() add_subdirectory(res) diff --git a/client/SDL/SDL3/dialogs/CMakeLists.txt b/client/SDL/SDL3/dialogs/CMakeLists.txt index d49af715e..fbf013544 100644 --- a/client/SDL/SDL3/dialogs/CMakeLists.txt +++ b/client/SDL/SDL3/dialogs/CMakeLists.txt @@ -58,7 +58,7 @@ find_sdl_component(SDL3_ttf) option(WITH_SDL_IMAGE_DIALOGS "Build with SDL_image support (recommended)" OFF) if(WITH_SDL_IMAGE_DIALOGS) find_sdl_component(SDL3_image) - add_definitions(-DWITH_SDL_IMAGE_DIALOGS) + add_compile_definitions(WITH_SDL_IMAGE_DIALOGS) endif() add_subdirectory(res) diff --git a/client/SDL/common/res/CMakeLists.txt b/client/SDL/common/res/CMakeLists.txt index ff8ec997c..a67289402 100644 --- a/client/SDL/common/res/CMakeLists.txt +++ b/client/SDL/common/res/CMakeLists.txt @@ -67,7 +67,7 @@ if(SDL_USE_COMPILED_RESOURCES) foreach(FILE ${RES_FONT_FILES}) convert_to_bin("${FILE}" "fonts") endforeach() - add_definitions(-DSDL_USE_COMPILED_RESOURCES) + add_compile_definitions(SDL_USE_COMPILED_RESOURCES) set(FINIT ${CMAKE_CURRENT_BINARY_DIR}/resource-init.cpp) list(APPEND FACTORY_SRCS ${FINIT}) @@ -94,7 +94,7 @@ else() string(APPEND SDL_RESOURCE_ROOT "${FREERDP_VERSION_MAJOR}") endif() - add_definitions(-DSDL_RESOURCE_ROOT="${SDL_RESOURCE_ROOT}") + add_compile_definitions(SDL_RESOURCE_ROOT="${SDL_RESOURCE_ROOT}") if(WITH_SDL_IMAGE_DIALOGS) install(FILES ${RES_SVG_FILES} DESTINATION ${SDL_RESOURCE_ROOT}/images) diff --git a/client/Windows/CMakeLists.txt b/client/Windows/CMakeLists.txt index f5c3a05fd..37f0bab34 100644 --- a/client/Windows/CMakeLists.txt +++ b/client/Windows/CMakeLists.txt @@ -45,12 +45,12 @@ option(WITH_WINDOWS_CERT_STORE "Build ${MODULE_NAME} with additional certificate validation against windows certificate store" ON ) if(WITH_WINDOWS_CERT_STORE) - add_definitions("-DWITH_WINDOWS_CERT_STORE") + add_compile_definitions("WITH_WINDOWS_CERT_STORE") endif() option(WITH_WIN_CONSOLE "Build ${MODULE_NAME} with console support" OFF) if(WITH_WIN_CONSOLE) - add_definitions("-DWITH_WIN_CONSOLE") + add_compile_definitions("WITH_WIN_CONSOLE") set(WIN32_GUI_FLAG "TRUE") else() set(WIN32_GUI_FLAG "WIN32") @@ -58,7 +58,7 @@ endif() option(WITH_PROGRESS_BAR "Build ${MODULE_NAME} with connect progress bar (Windows 7+ or 2008 R2+)" ON) if(WITH_PROGRESS_BAR) - add_definitions("-DWITH_PROGRESS_BAR") + add_compile_definitions("WITH_PROGRESS_BAR") endif() if(CLIENT_INTERFACE_SHARED) diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt index 1da67d39e..5fd376599 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt @@ -92,7 +92,7 @@ set(PRIV_LIBS ${X11_LIBRARIES}) find_package(X11 REQUIRED) if(X11_XShm_FOUND) - add_definitions(-DWITH_XSHM) + add_compile_definitions(WITH_XSHM) include_directories(SYSTEM ${X11_XShm_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xext_LIB}) endif() @@ -101,7 +101,7 @@ option(WITH_XINERAMA "[X11] enable xinerama" ON) if(WITH_XINERAMA) find_package(X11 REQUIRED) if(X11_Xinerama_FOUND) - add_definitions(-DWITH_XINERAMA) + add_compile_definitions(WITH_XINERAMA) include_directories(SYSTEM ${X11_Xinerama_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xinerama_LIB}) endif() @@ -111,7 +111,7 @@ option(WITH_XEXT "[X11] enable Xext" ON) if(WITH_XEXT) find_package(X11 REQUIRED) if(X11_Xext_FOUND) - add_definitions(-DWITH_XEXT) + add_compile_definitions(WITH_XEXT) list(APPEND PRIV_LIBS ${X11_Xext_LIB}) endif() endif() @@ -120,7 +120,7 @@ option(WITH_XCURSOR "[X11] enable Xcursor" ON) if(WITH_XCURSOR) find_package(X11 REQUIRED) if(X11_Xcursor_FOUND) - add_definitions(-DWITH_XCURSOR) + add_compile_definitions(WITH_XCURSOR) include_directories(SYSTEM ${X11_Xcursor_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xcursor_LIB}) endif() @@ -130,7 +130,7 @@ option(WITH_XV "[X11] enable Xv" ON) if(WITH_XV) find_package(X11 REQUIRED) if(X11_Xv_FOUND) - add_definitions(-DWITH_XV) + add_compile_definitions(WITH_XV) include_directories(SYSTEM ${X11_Xv_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xv_LIB}) endif() @@ -140,7 +140,7 @@ option(WITH_XI "[X11] enable Xi" ON) if(WITH_XI) find_package(X11 REQUIRED) if(X11_Xi_FOUND) - add_definitions(-DWITH_XI) + add_compile_definitions(WITH_XI) include_directories(SYSTEM ${X11_Xi_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xi_LIB}) endif() @@ -150,7 +150,7 @@ option(WITH_XRENDER "[X11] enable XRender" ON) if(WITH_XRENDER) find_package(X11 REQUIRED) if(X11_Xrender_FOUND) - add_definitions(-DWITH_XRENDER) + add_compile_definitions(WITH_XRENDER) include_directories(SYSTEM ${X11_Xrender_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xrender_LIB}) endif() @@ -160,7 +160,7 @@ option(WITH_XRANDR "[X11] enable XRandR" ON) if(WITH_XRANDR) find_package(X11 REQUIRED) if(X11_Xrandr_FOUND) - add_definitions(-DWITH_XRANDR) + add_compile_definitions(WITH_XRANDR) include_directories(SYSTEM ${X11_Xrandr_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xrandr_LIB}) endif() @@ -170,7 +170,7 @@ option(WITH_XFIXES "[X11] enable Xfixes" ON) if(WITH_XFIXES) find_package(X11 REQUIRED) if(X11_Xfixes_FOUND) - add_definitions(-DWITH_XFIXES) + add_compile_definitions(WITH_XFIXES) include_directories(SYSTEM ${X11_Xfixes_INCLUDE_PATH}) list(APPEND PRIV_LIBS ${X11_Xfixes_LIB}) endif() diff --git a/client/common/CMakeLists.txt b/client/common/CMakeLists.txt index d96a0c2d0..fedac6c5e 100644 --- a/client/common/CMakeLists.txt +++ b/client/common/CMakeLists.txt @@ -53,10 +53,10 @@ if(WITH_FUSE) pkg_check_modules(FUSE3 REQUIRED fuse3) include_directories(SYSTEM ${FUSE3_INCLUDE_DIRS}) - add_definitions(-DWITH_FUSE) + add_compile_definitions(WITH_FUSE) list(APPEND LIBS ${FUSE3_LIBRARIES}) - add_definitions(-D_FILE_OFFSET_BITS=64) + add_compile_definitions(_FILE_OFFSET_BITS=64) endif() include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR}) diff --git a/cmake/CFlagsToVar.cmake b/cmake/CFlagsToVar.cmake index 24a13f8ea..c6e9999e6 100644 --- a/cmake/CFlagsToVar.cmake +++ b/cmake/CFlagsToVar.cmake @@ -1,12 +1,11 @@ -function(CFlagsToVar NAME) +function(CFlagsToVar NAME CFG) + string(TOUPPER "${CFG}" UCFG) set(C_FLAGS ${CMAKE_C_FLAGS}) string(REPLACE "${CMAKE_SOURCE_DIR}" "" C_FLAGS "${C_FLAGS}") string(REPLACE "${CMAKE_BINARY_DIR}" "" C_FLAGS "${C_FLAGS}") - if(CMAKE_BUILD_TYPE) - string(TOUPPER "${CMAKE_BUILD_TYPE}" CAPS_BUILD_TYPE) - string(APPEND C_FLAGS " ${CMAKE_C_FLAGS_${CAPS_BUILD_TYPE}}") - endif() + string(APPEND C_FLAGS " ${CMAKE_C_FLAGS_${UCFG}}") + string(REPLACE "\$" "\\\$" C_FLAGS "${C_FLAGS}") string(REPLACE "\"" "\\\"" C_FLAGS "${C_FLAGS}") set(${NAME} ${C_FLAGS} PARENT_SCOPE) diff --git a/cmake/CXXCompilerFlags.cmake b/cmake/CXXCompilerFlags.cmake index ecb516ab0..f62d16c8d 100644 --- a/cmake/CXXCompilerFlags.cmake +++ b/cmake/CXXCompilerFlags.cmake @@ -69,8 +69,12 @@ endif() # https://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c if(WIN32) - add_compile_options($<$:-DNOMINMAX>) + add_compile_definitions($<$:NOMINMAX>) endif() set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "default CXXFLAGS") message("Using CXXFLAGS ${CMAKE_CXX_FLAGS}") +message("Using CXXFLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}") +message("Using CXXFLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}") +message("Using CXXFLAGS_MINSIZEREL ${CMAKE_CXX_FLAGS_MINSIZEREL}") +message("Using CXXFLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") diff --git a/cmake/CleaningConfigureFile.cmake b/cmake/CleaningConfigureFile.cmake index 8a83c7511..7fe2da1b0 100644 --- a/cmake/CleaningConfigureFile.cmake +++ b/cmake/CleaningConfigureFile.cmake @@ -4,8 +4,44 @@ # Handy if the generated files might have changed # -function(cleaning_configure_file SRC DST) +include(CFlagsToVar) + +function(cleaning_configure_file RSRC RDST) + get_filename_component(SRC "${RSRC}" ABSOLUTE BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + get_filename_component(DST "${RDST}" ABSOLUTE BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}) + get_filename_component(DST_DIR "${DST}" DIRECTORY) + if(CMAKE_CONFIGURATION_TYPES) + foreach(CFG ${CMAKE_CONFIGURATION_TYPES}) + set(CURRENT_BUILD_CONFIG ${CFG}) + cflagstovar(CURRENT_C_FLAGS ${CURRENT_BUILD_CONFIG}) + configure_file(${SRC} ${DST}_${CFG} ${ARGN}) + unset(CURRENT_BUILD_CONFIG) + unset(CURRENT_C_FLAGS) + endforeach() + else() + # We call this also from CMake scripts without a CMAKE_BUILD_TYPE + # Fall back to an explicitly unsupported build type to point out something is wrond + # if this variable is used during such a call + if(CMAKE_BUILD_TYPE) + set(CURRENT_BUILD_CONFIG ${CMAKE_BUILD_TYPE}) + else() + set(CURRENT_BUILD_CONFIG "InvalidBuildType") + endif() + cflagstovar(CURRENT_C_FLAGS ${CURRENT_BUILD_CONFIG}) + configure_file(${SRC} ${DST}_${CMAKE_BUILD_TYPE} ${ARGN}) + unset(CURRENT_BUILD_CONFIG) + unset(CURRENT_C_FLAGS) + endif() + configure_file(${SRC} ${DST} ${ARGN}) - set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES ${DST}) - set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${SRC} ${DST}) + + string(SHA256 DST_HASH "${DST}") + if(NOT TARGET ct-${DST_HASH}) + add_custom_target( + ct-${DST_HASH} ALL COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${DST_DIR}" + COMMAND ${CMAKE_COMMAND} "-E" "copy" "${DST}_$" "${DST}" COMMAND ${CMAKE_COMMAND} "-E" "sha256sum" + "${DST}_$" > ${DST}.hash + DEPENDS ${DST} BYPRODUCTS ${DST}.hash + ) + endif() endfunction() diff --git a/cmake/CommonConfigOptions.cmake b/cmake/CommonConfigOptions.cmake index 634c8d3bf..31a2ef3a6 100644 --- a/cmake/CommonConfigOptions.cmake +++ b/cmake/CommonConfigOptions.cmake @@ -9,7 +9,7 @@ option(BUILD_SHARED_LIBS "Build shared libraries" ON) # We want to control the winpr assert for the whole project option(WITH_VERBOSE_WINPR_ASSERT "Compile with verbose WINPR_ASSERT." ON) if(WITH_VERBOSE_WINPR_ASSERT) - add_definitions(-DWITH_VERBOSE_WINPR_ASSERT) + add_compile_definitions(WITH_VERBOSE_WINPR_ASSERT) endif() # known issue on android, thus disabled until we support newer CMake @@ -49,6 +49,10 @@ if(CMAKE_BUILD_TYPE) endif() endif() +if(CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES "Release;Debug;MinSizeRel;RelWithDebInfo" CACHE INTERNAL "freerdp default") +endif() + include(PlatformDefaults) include(PreventInSourceBuilds) include(GNUInstallDirsWrapper) diff --git a/cmake/CompilerFlags.cmake b/cmake/CompilerFlags.cmake index 44ca8eb5b..0f2002ef5 100644 --- a/cmake/CompilerFlags.cmake +++ b/cmake/CompilerFlags.cmake @@ -65,3 +65,7 @@ endif() set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "default CFLAGS") message("Using CFLAGS ${CMAKE_C_FLAGS}") +message("Using CFLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}") +message("Using CFLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}") +message("Using CFLAGS_MINSIZEREL ${CMAKE_C_FLAGS_MINSIZEREL}") +message("Using CFLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO}") diff --git a/cmake/GenerateManpages.cmake b/cmake/GenerateManpages.cmake index 24b3d0c5d..c41634a2c 100644 --- a/cmake/GenerateManpages.cmake +++ b/cmake/GenerateManpages.cmake @@ -1,10 +1,8 @@ get_filename_component(GENERATE_MANPAGES_SCRIPT_DIR "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE) list(APPEND CMAKE_MODULE_PATH ${GENERATE_MANPAGES_SCRIPT_DIR}) -include(CleaningConfigureFile) - set(SRC "${CURRENT_SOURCE_DIR}/${target}.${section}.in") -cleaning_configure_file(${SRC} ${manpage}.tmp @ONLY IMMEDIATE) +configure_file(${SRC} ${manpage}.tmp @ONLY IMMEDIATE) # write header (aka name of the manpage), truncate existing file(READ ${CURRENT_BINARY_DIR}/${manpage}.tmp CONTENTS) @@ -21,10 +19,10 @@ foreach(DEP IN LISTS DEPS) if(EXISTS ${SRC_IN}) message("using generated ${DST} from ${SRC_IN}") - cleaning_configure_file(${SRC_IN} ${DST} @ONLY IMMEDIATE) + configure_file(${SRC_IN} ${DST} @ONLY IMMEDIATE) elseif(EXISTS ${DST_IN}) message("using generated ${DST} from ${DST_IN}") - cleaning_configure_file(${DST_IN} ${DST} @ONLY IMMEDIATE) + configure_file(${DST_IN} ${DST} @ONLY IMMEDIATE) elseif(EXISTS ${SRC}) set(DST ${SRC}) message("using ${DST}") diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake index 166030aba..9d0a052f9 100644 --- a/cmake/GetGitRevisionDescription.cmake +++ b/cmake/GetGitRevisionDescription.cmake @@ -30,8 +30,6 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -include(CleaningConfigureFile) - if(__get_git_revision_description) return() endif() @@ -65,9 +63,9 @@ function(get_git_head_revision _refspecvar _hashvar) return() endif() set(HEAD_FILE "${GIT_DATA}/HEAD") - cleaning_configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) + configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) - cleaning_configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" "${GIT_DATA}/grabRef.cmake" @ONLY) + configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" "${GIT_DATA}/grabRef.cmake" @ONLY) include("${GIT_DATA}/grabRef.cmake") set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) diff --git a/cmake/GetGitRevisionDescription.cmake.in b/cmake/GetGitRevisionDescription.cmake.in index e9c0e08bc..888ce13aa 100644 --- a/cmake/GetGitRevisionDescription.cmake.in +++ b/cmake/GetGitRevisionDescription.cmake.in @@ -13,8 +13,6 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -include(CleaningConfigureFile) - set(HEAD_HASH) file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) @@ -24,14 +22,14 @@ if(HEAD_CONTENTS MATCHES "ref") # named branch string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") if(EXISTS "@GIT_DIR@/${HEAD_REF}") - cleaning_configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) + configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) elseif(EXISTS "@GIT_DIR@/logs/${HEAD_REF}") - cleaning_configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) + configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) set(HEAD_HASH "${HEAD_REF}") endif() else() # detached HEAD - cleaning_configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) + configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) endif() if(NOT HEAD_HASH) diff --git a/cmake/MSVCRuntime.cmake b/cmake/MSVCRuntime.cmake index aa4587d0c..2aafd7255 100644 --- a/cmake/MSVCRuntime.cmake +++ b/cmake/MSVCRuntime.cmake @@ -18,9 +18,7 @@ if(MSVC) else() set(MSVC_DEFAULT_RUNTIME "MultiThreaded") - if(CMAKE_BUILD_TYPE STREQUAL "Debug") - string(APPEND MSVC_DEFAULT_RUNTIME "Debug") - endif() + string(APPEND MSVC_DEFAULT_RUNTIME "$<$:Debug>") if(BUILD_SHARED_LIBS) string(APPEND MSVC_DEFAULT_RUNTIME "DLL") diff --git a/cmake/PlatformDefaults.cmake b/cmake/PlatformDefaults.cmake index 11337d9f4..b3d4356db 100644 --- a/cmake/PlatformDefaults.cmake +++ b/cmake/PlatformDefaults.cmake @@ -10,13 +10,13 @@ if(USE_PLATFORM_DEFAULT) # default defines or other required preferences per platform if((CMAKE_SYSTEM_NAME MATCHES "WindowsStore") AND (CMAKE_SYSTEM_VERSION MATCHES "10.0")) set(UWP 1 CACHE BOOL "platform default") - add_definitions("-D_UWP") + add_compile_definitions("_UWP") set(CMAKE_WINDOWS_VERSION "WIN10" CACHE STRING "platform default") endif() if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") # Linux already does define _POSIX_C_SOURCE by default, nothing to do - add_definitions("-D_FILE_OFFSET_BITS=64") + add_compile_definitions("_FILE_OFFSET_BITS=64") set(WINPR_TIMEZONE_FILE "/etc/timezone") endif() @@ -25,21 +25,21 @@ if(USE_PLATFORM_DEFAULT) set(FREEBSD TRUE CACHE INTERNAL "platform default") # we want POSIX 2008. FreeBSD 14 does only support 2001 fully, but the subset we require from 2008 # is implemented, so ignore _POSIX_VERSION from unistd.h - add_definitions("-D_POSIX_C_SOURCE=200809L") + add_compile_definitions("_POSIX_C_SOURCE=200809L") # TODO: FreeBSD allows mixing POSIX and BSD API calls if we do not set # _POSIX_C_SOURCE but lack a macro to re-enable the BSD calls... - add_definitions("-D__BSD_VISIBLE") + add_compile_definitions("__BSD_VISIBLE") # There are some symbols only visible for XOpen standard - add_definitions("-D_XOPEN_SOURCE=700") - add_definitions("-D_FILE_OFFSET_BITS=64") + add_compile_definitions("_XOPEN_SOURCE=700") + add_compile_definitions("_FILE_OFFSET_BITS=64") set(WINPR_TIMEZONE_FILE "/var/db/zoneinfo") endif() if("${CMAKE_SYSTEM_NAME}" MATCHES "SunOS") # TODO: Does somebody still use this? please show yourself and # tell us if this still works. - add_definitions("-D_POSIX_PTHREAD_SEMANTICS") + add_compile_definitions("_POSIX_PTHREAD_SEMANTICS") list(APPEND CMAKE_STANDARD_LIBRARIES rt) set(CMAKE_STANDARD_LIBRARIES ${CMAKE_STANDARD_LIBRARIES} CACHE STRING "platform default") set(WITH_SUN true CACHE BOOL "platform default") @@ -48,18 +48,18 @@ if(USE_PLATFORM_DEFAULT) if("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") # we want POSIX 2008. MacOS does only support 2001 fully, but the subset we require from 2008 # is implemented, so ignore _POSIX_VERSION from unistd.h - add_definitions("-D_POSIX_C_SOURCE=200809L") + add_compile_definitions("_POSIX_C_SOURCE=200809L") # as _POSIX_C_SOURCE sets a fully POSIX confirmant environment re-enable # MacOS API visibility by defining the following feature test macro - add_definitions("-D_DARWIN_C_SOURCE") + add_compile_definitions("_DARWIN_C_SOURCE") endif() if(${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD") set(BSD TRUE CACHE INTERNAL "platform default") set(KFREEBSD TRUE CACHE INTERNAL "platform default") - add_definitions(-DKFREEBSD) - add_definitions("-D_GNU_SOURCE") + add_compile_definitions(KFREEBSD) + add_compile_definitions("_GNU_SOURCE") endif() if(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") @@ -73,14 +73,14 @@ if(USE_PLATFORM_DEFAULT) # we want POSIX 2008. FreeBSD 14 does only support 2001 fully, but the subset we require from 2008 # is implemented, so ignore _POSIX_VERSION from unistd.h - add_definitions("-D_POSIX_C_SOURCE=200809L") + add_compile_definitions("_POSIX_C_SOURCE=200809L") # TODO: FreeBSD allows mixing POSIX and BSD API calls if we do not set # _POSIX_C_SOURCE but lack a macro to re-enable the BSD calls... - add_definitions("-D__BSD_VISIBLE") + add_compile_definitions("__BSD_VISIBLE") # There are some symbols only visible for XOpen standard - add_definitions("-D_XOPEN_SOURCE=700") - add_definitions("-D_FILE_OFFSET_BITS=64") + add_compile_definitions("_XOPEN_SOURCE=700") + add_compile_definitions("_FILE_OFFSET_BITS=64") set(WINPR_TIMEZONE_FILE "/var/db/zoneinfo") endif() @@ -101,7 +101,7 @@ if(USE_PLATFORM_DEFAULT) if(NOT WINPR_TIMEZONE_FILE) set(WINPR_TIMEZONE_FILE "/var/db/zoneinfo") endif() - add_definitions("-DWINPR_TIMEZONE_FILE=\"${WINPR_TIMEZONE_FILE}\"") + add_compile_definitions("WINPR_TIMEZONE_FILE=\"${WINPR_TIMEZONE_FILE}\"") if(FREEBSD) find_path(EPOLLSHIM_INCLUDE_DIR NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 7d38d900a..7f9a7340a 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -38,9 +38,6 @@ if(WIN32) string(REPLACE "\\" "\\\\" NATIVE_FREERDP_PROXY_PLUGINDIR "${NATIVE_FREERDP_PROXY_PLUGINDIR}") endif() -include(CFlagsToVar) -cflagstovar(C_FLAGS) - cleaning_configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/version.h) cleaning_configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config/build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp/build-config.h diff --git a/include/config/buildflags.h.in b/include/config/buildflags.h.in index ed9dfca53..f45331b86 100644 --- a/include/config/buildflags.h.in +++ b/include/config/buildflags.h.in @@ -1,11 +1,11 @@ #ifndef FREERDP_BUILD_FLAGS_H #define FREERDP_BUILD_FLAGS_H -#define FREERDP_CFLAGS "${C_FLAGS}" +#define FREERDP_CFLAGS "${CURRENT_C_FLAGS}" #define FREERDP_COMPILER_ID "${CMAKE_C_COMPILER_ID}" #define FREERDP_COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}" #define FREERDP_TARGET_ARCH "${TARGET_ARCH}" #define FREERDP_BUILD_CONFIG "${FREERDP_BUILD_CONFIG}" -#define FREERDP_BUILD_TYPE "${CMAKE_BUILD_TYPE}" +#define FREERDP_BUILD_TYPE "${CURRENT_BUILD_CONFIG}" #endif /* FREERDP_BUILD_FLAGS_H */ diff --git a/libfreerdp/CMakeLists.txt b/libfreerdp/CMakeLists.txt index 1aee01888..14f8b4570 100644 --- a/libfreerdp/CMakeLists.txt +++ b/libfreerdp/CMakeLists.txt @@ -112,7 +112,7 @@ if(WITH_FDK_AAC) find_package(PkgConfig REQUIRED) pkg_check_modules(FDK_AAC REQUIRED fdk-aac) - add_definitions(-DWITH_FDK_AAC) + add_compile_definitions(WITH_FDK_AAC) include_directories(SYSTEM ${FDK_AAC_INCLUDE_DIRS}) link_directories(${FDK_AAC_LIBRARY_DIRS}) @@ -202,13 +202,13 @@ endif() addtargetwithresourcefile(${MODULE_NAME} FALSE "${FREERDP_VERSION}" LIBFREERDP_SRCS) if(WITH_RESOURCE_VERSIONING) - target_compile_definitions(${MODULE_NAME} PRIVATE -DWITH_RESOURCE_VERSIONING) + target_compile_definitions(${MODULE_NAME} PRIVATE WITH_RESOURCE_VERSIONING) endif() if(FREERDP_USE_VENDOR_PRODUCT_CONFIG_DIR) - target_compile_definitions(${MODULE_NAME} PRIVATE -DFREERDP_USE_VENDOR_PRODUCT_CONFIG_DIR) + target_compile_definitions(${MODULE_NAME} PRIVATE FREERDP_USE_VENDOR_PRODUCT_CONFIG_DIR) endif() -add_definitions(${LIBFREERDP_DEFINITIONS}) +add_compile_definitions(${LIBFREERDP_DEFINITIONS}) if(LIBFREERDP_COMPILE_OPTIONS) list(REMOVE_DUPLICATES LIBFREERDP_COMPILE_OPTIONS) @@ -216,7 +216,7 @@ if(LIBFREERDP_COMPILE_OPTIONS) endif() if(WITH_FULL_CONFIG_PATH) - add_definitions(-DWITH_FULL_CONFIG_PATH) + add_compile_definitions(WITH_FULL_CONFIG_PATH) endif() target_include_directories(${MODULE_NAME} INTERFACE $) diff --git a/libfreerdp/codec/test/CMakeLists.txt b/libfreerdp/codec/test/CMakeLists.txt index 5ee216d56..33173e10e 100644 --- a/libfreerdp/codec/test/CMakeLists.txt +++ b/libfreerdp/codec/test/CMakeLists.txt @@ -22,8 +22,8 @@ endif() create_test_sourcelist(SRCS ${DRIVER} ${TESTS}) -add_definitions(-DCMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") -add_definitions(-DCMAKE_CURRENT_BINARY_DIR="${CMAKE_CURRENT_BINARY_DIR}") +add_compile_definitions(CMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") +add_compile_definitions(CMAKE_CURRENT_BINARY_DIR="${CMAKE_CURRENT_BINARY_DIR}") add_executable(${MODULE_NAME} ${SRCS}) target_link_libraries(${MODULE_NAME} freerdp winpr) diff --git a/libfreerdp/core/CMakeLists.txt b/libfreerdp/core/CMakeLists.txt index 9d61dd631..40935eded 100644 --- a/libfreerdp/core/CMakeLists.txt +++ b/libfreerdp/core/CMakeLists.txt @@ -20,7 +20,7 @@ set(MODULE_PREFIX "FREERDP_CORE") check_include_files("ctype.h;linux/vm_sockets.h" HAVE_AF_VSOCK_H) -freerdp_definition_add(-DEXT_PATH="${FREERDP_EXTENSION_PATH}") +freerdp_definition_add(EXT_PATH="${FREERDP_EXTENSION_PATH}") freerdp_include_directory_add(${OPENSSL_INCLUDE_DIR}) diff --git a/libfreerdp/core/test/CMakeLists.txt b/libfreerdp/core/test/CMakeLists.txt index 1bb59c89e..736d45cab 100644 --- a/libfreerdp/core/test/CMakeLists.txt +++ b/libfreerdp/core/test/CMakeLists.txt @@ -15,7 +15,7 @@ set(FUZZERS TestFuzzCoreClient.c TestFuzzCoreServer.c TestFuzzCryptoCertificateD # Test not compatible with package tests, disable if(WITH_SAMPLE AND WITH_SERVER AND NOT WIN32 AND BUILD_TESTING_INTERNAL) - add_definitions(-DCMAKE_EXECUTABLE_SUFFIX="${CMAKE_EXECUTABLE_SUFFIX}") + add_compile_definitions(CMAKE_EXECUTABLE_SUFFIX="${CMAKE_EXECUTABLE_SUFFIX}") set(TESTS ${TESTS} TestConnect.c) else() message("Skipping connection tests, requires BUILD_TESTING_INTERNAL, WITH_SAMPLE and WITH_SERVER set!") @@ -25,8 +25,8 @@ create_test_sourcelist(SRCS ${DRIVER} ${TESTS}) add_executable(${MODULE_NAME} ${SRCS}) -add_definitions(-DTESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") -add_definitions(-DTESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") +add_compile_definitions(TESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") +add_compile_definitions(TESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") target_link_libraries(${MODULE_NAME} freerdp winpr freerdp-client) diff --git a/libfreerdp/crypto/test/CMakeLists.txt b/libfreerdp/crypto/test/CMakeLists.txt index 0b63231b8..351f978fb 100644 --- a/libfreerdp/crypto/test/CMakeLists.txt +++ b/libfreerdp/crypto/test/CMakeLists.txt @@ -19,7 +19,7 @@ add_executable(${MODULE_NAME} ${SRCS}) set(TEST_PATH ${CMAKE_CURRENT_SOURCE_DIR}) -add_definitions(-DTEST_SOURCE_DIR="${TEST_PATH}") +add_compile_definitions(TEST_SOURCE_DIR="${TEST_PATH}") target_link_libraries(${MODULE_NAME} freerdp winpr ${OPENSSL_LIBRARIES}) set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") diff --git a/libfreerdp/gdi/CMakeLists.txt b/libfreerdp/gdi/CMakeLists.txt index 2dd7514ab..46bcaef07 100644 --- a/libfreerdp/gdi/CMakeLists.txt +++ b/libfreerdp/gdi/CMakeLists.txt @@ -22,7 +22,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) option(WITH_GFX_FRAME_DUMP "Dump GFX commands to directory" OFF) if(WITH_GFX_FRAME_DUMP) - freerdp_definition_add(-DWITH_GFX_FRAME_DUMP) + freerdp_definition_add(WITH_GFX_FRAME_DUMP) endif() file(GLOB ${MODULE_PREFIX}_SRCS LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS "*.[ch]") diff --git a/libfreerdp/locale/CMakeLists.txt b/libfreerdp/locale/CMakeLists.txt index 9c9b9eabd..322761c55 100644 --- a/libfreerdp/locale/CMakeLists.txt +++ b/libfreerdp/locale/CMakeLists.txt @@ -31,8 +31,8 @@ set(APPLE_SRCS keyboard_apple.c keyboard_apple.h) include(CMakeDependentOption) cmake_dependent_option(WITH_KEYBOARD_LAYOUT_FROM_FILE "Use keyboard definitions from JSON file" OFF WITH_WINPR_JSON OFF) if(WITH_KEYBOARD_LAYOUT_FROM_FILE) - freerdp_definition_add(-DFREERDP_RESOURCE_ROOT="${FREERDP_RESOURCE_ROOT}") - freerdp_definition_add(-DWITH_KEYBOARD_LAYOUT_FROM_FILE) + freerdp_definition_add(FREERDP_RESOURCE_ROOT="${FREERDP_RESOURCE_ROOT}") + freerdp_definition_add(WITH_KEYBOARD_LAYOUT_FROM_FILE) install(FILES KeyboardLayoutMap.json DESTINATION ${FREERDP_RESOURCE_ROOT}) endif() @@ -55,18 +55,18 @@ endif() if(WITH_X11) find_package(X11 REQUIRED) - freerdp_definition_add(-DWITH_X11) + freerdp_definition_add(WITH_X11) freerdp_include_directory_add(${X11_INCLUDE_DIR}) list(APPEND SRCS ${X11_SRCS}) freerdp_library_add(${X11_LIBRARIES}) if(WITH_SUN) - freerdp_definition_add(-DWITH_SUN) + freerdp_definition_add(WITH_SUN) list(APPEND SRCS ${SUN_SRCS}) endif() if(X11_Xkbfile_FOUND AND (NOT APPLE)) - freerdp_definition_add(-DWITH_XKBFILE) + freerdp_definition_add(WITH_XKBFILE) freerdp_include_directory_add(${X11_Xkbfile_INCLUDE_PATH}) list(APPEND SRCS ${XKBFILE_SRCS}) freerdp_library_add(${X11_Xkbfile_LIB}) @@ -76,7 +76,7 @@ if(WITH_X11) endif() if(WITH_WAYLAND) - freerdp_definition_add(-DWITH_WAYLAND) + freerdp_definition_add(WITH_WAYLAND) endif() freerdp_module_add(${SRCS}) diff --git a/libfreerdp/locale/test/CMakeLists.txt b/libfreerdp/locale/test/CMakeLists.txt index 2b5f1f01e..d367f78c7 100644 --- a/libfreerdp/locale/test/CMakeLists.txt +++ b/libfreerdp/locale/test/CMakeLists.txt @@ -13,8 +13,8 @@ if(BUILD_TESTING_INTERNAL) add_executable(${MODULE_NAME} ${SRCS}) - add_definitions(-DTESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") - add_definitions(-DTESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") + add_compile_definitions(TESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}") + add_compile_definitions(TESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}") target_link_libraries(${MODULE_NAME} freerdp winpr freerdp-client) diff --git a/rdtk/CMakeLists.txt b/rdtk/CMakeLists.txt index b8d418de3..034184548 100644 --- a/rdtk/CMakeLists.txt +++ b/rdtk/CMakeLists.txt @@ -67,7 +67,7 @@ if(RDTK_FORCE_STATIC_BUILD) set(BUILD_SHARED_LIBS OFF) endif() -add_definitions(-DRDTK_EXPORTS) +add_compile_definitions(RDTK_EXPORTS) if(NOT IOS) check_include_files(stdbool.h RDTK_HAVE_STDBOOL_H) diff --git a/rdtk/templates/buildflags.h.in b/rdtk/templates/buildflags.h.in index 03839dd32..affdadbec 100644 --- a/rdtk/templates/buildflags.h.in +++ b/rdtk/templates/buildflags.h.in @@ -1,11 +1,11 @@ #ifndef RDTK_BUILD_FLAGS_H #define RDTK_BUILD_FLAGS_H -#define RDTK_CFLAGS "${CMAKE_C_FLAGS}" +#define RDTK_CFLAGS "${CMAKE_CURRENT_C_FLAGS}" #define RDTK_COMPILER_ID "${CMAKE_C_COMPILER_ID}" #define RDTK_COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}" #define RDTK_TARGET_ARCH "${TARGET_ARCH}" #define RDTK_BUILD_CONFIG "${RDTK_BUILD_CONFIG}" -#define RDTK_BUILD_TYPE "${CMAKE_BUILD_TYPE}" +#define RDTK_BUILD_TYPE "${CURRENT_BUILD_CONFIG}" #endif /* RDTK_BUILD_FLAGS_H */ diff --git a/server/Sample/CMakeLists.txt b/server/Sample/CMakeLists.txt index e46bb62ee..393e1a23f 100644 --- a/server/Sample/CMakeLists.txt +++ b/server/Sample/CMakeLists.txt @@ -53,7 +53,7 @@ file(COPY test_icon.bmp DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) addtargetwithresourcefile(${MODULE_NAME} TRUE "${FREERDP_VERSION}" SRCS) -target_compile_definitions(${MODULE_NAME} PRIVATE -DSAMPLE_RESOURCE_ROOT="${SAMPLE_RESOURCE_ROOT}") +target_compile_definitions(${MODULE_NAME} PRIVATE SAMPLE_RESOURCE_ROOT="${SAMPLE_RESOURCE_ROOT}") list(APPEND LIBS freerdp-server) list(APPEND LIBS winpr freerdp) diff --git a/server/proxy/modules/bitmap-filter/CMakeLists.txt b/server/proxy/modules/bitmap-filter/CMakeLists.txt index f27daf87a..d6c82fec0 100644 --- a/server/proxy/modules/bitmap-filter/CMakeLists.txt +++ b/server/proxy/modules/bitmap-filter/CMakeLists.txt @@ -32,10 +32,6 @@ project(proxy-bitmap-filter-plugin VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} LA message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") -project(proxy-bitmap-filter-plugin VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} LANGUAGES CXX) - -message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") - set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/) include(CommonConfigOptions) include(CXXCompilerFlags) diff --git a/server/shadow/Mac/CMakeLists.txt b/server/shadow/Mac/CMakeLists.txt index 7137a8822..a66015683 100644 --- a/server/shadow/Mac/CMakeLists.txt +++ b/server/shadow/Mac/CMakeLists.txt @@ -9,13 +9,13 @@ find_package(PAM) set(LIBS ${IOKIT} ${IOSURFACE} ${CARBON}) if(PAM_FOUND) - add_definitions(-DWITH_PAM) + add_compile_definitions(WITH_PAM) include_directories(SYSTEM ${PAM_INCLUDE_DIR}) list(APPEND LIBS ${PAM_LIBRARY}) else() message("building without PAM authentication support") endif() -add_definitions(-DWITH_SHADOW_MAC) +add_compile_definitions(WITH_SHADOW_MAC) add_library(freerdp-shadow-subsystem-impl STATIC mac_shadow.h mac_shadow.c) target_link_libraries(freerdp-shadow-subsystem-impl PRIVATE ${LIBS}) diff --git a/server/shadow/Win/CMakeLists.txt b/server/shadow/Win/CMakeLists.txt index ac543faca..48f5d14c4 100644 --- a/server/shadow/Win/CMakeLists.txt +++ b/server/shadow/Win/CMakeLists.txt @@ -1,7 +1,7 @@ include(WarnUnmaintained) warn_unmaintained("windows shadow server subsystem") -add_definitions(-DWITH_SHADOW_WIN) +add_compile_definitions(WITH_SHADOW_WIN) add_library( freerdp-shadow-subsystem-impl STATIC win_dxgi.c diff --git a/server/shadow/X11/CMakeLists.txt b/server/shadow/X11/CMakeLists.txt index f0f88e448..24e32566d 100644 --- a/server/shadow/X11/CMakeLists.txt +++ b/server/shadow/X11/CMakeLists.txt @@ -1,67 +1,67 @@ find_package(X11 REQUIRED) if(X11_FOUND) - add_definitions(-DWITH_X11) + add_compile_definitions(WITH_X11) include_directories(SYSTEM ${X11_INCLUDE_DIR}) list(APPEND LIBS ${X11_LIBRARIES}) endif() if(X11_XShm_FOUND) - add_definitions(-DWITH_XSHM) + add_compile_definitions(WITH_XSHM) include_directories(SYSTEM ${X11_XShm_INCLUDE_PATH}) list(APPEND LIBS ${X11_XShm_LIB}) endif() if(X11_Xext_FOUND) - add_definitions(-DWITH_XEXT) + add_compile_definitions(WITH_XEXT) list(APPEND LIBS ${X11_Xext_LIB}) endif() if(X11_Xinerama_FOUND) - add_definitions(-DWITH_XINERAMA) + add_compile_definitions(WITH_XINERAMA) include_directories(SYSTEM ${X11_Xinerama_INCLUDE_PATH}) list(APPEND LIBS ${X11_Xinerama_LIB}) endif() if(X11_Xdamage_FOUND) - add_definitions(-DWITH_XDAMAGE) + add_compile_definitions(WITH_XDAMAGE) include_directories(SYSTEM ${X11_Xdamage_INCLUDE_PATH}) list(APPEND LIBS ${X11_Xdamage_LIB}) endif() if(X11_Xfixes_FOUND) - add_definitions(-DWITH_XFIXES) + add_compile_definitions(WITH_XFIXES) include_directories(SYSTEM ${X11_Xfixes_INCLUDE_PATH}) list(APPEND LIBS ${X11_Xfixes_LIB}) endif() if(X11_XTest_FOUND) - add_definitions(-DWITH_XTEST) + add_compile_definitions(WITH_XTEST) include_directories(SYSTEM ${X11_XTest_INCLUDE_PATH}) list(APPEND LIBS ${X11_XTest_LIB}) endif() # XCursor and XRandr are currently not used so don't link them #if(X11_Xcursor_FOUND) -# add_definitions(-DWITH_XCURSOR) +# add_compile_definitions(WITH_XCURSOR) # include_directories(SYSTEM ${X11_Xcursor_INCLUDE_PATH}) # list(APPEND LIBS ${X11_Xcursor_LIB}) #endif() #if(X11_Xrandr_FOUND) -# add_definitions(-DWITH_XRANDR) +# add_compile_definitions(WITH_XRANDR) # include_directories(SYSTEM ${X11_Xrandr_INCLUDE_PATH}) # list(APPEND LIBS ${X11_Xrandr_LIB}) #endif() find_package(PAM) if(PAM_FOUND) - add_definitions(-DWITH_PAM) + add_compile_definitions(WITH_PAM) include_directories(SYSTEM ${PAM_INCLUDE_DIR}) list(APPEND LIBS ${PAM_LIBRARY}) else() message("building without PAM authentication support") endif() -add_definitions(-DWITH_SHADOW_X11) +add_compile_definitions(WITH_SHADOW_X11) add_library(freerdp-shadow-subsystem-impl STATIC x11_shadow.h x11_shadow.c) target_link_libraries(freerdp-shadow-subsystem-impl PRIVATE ${LIBS}) diff --git a/uwac/libuwac/CMakeLists.txt b/uwac/libuwac/CMakeLists.txt index d294d9ece..03b7ed0a0 100644 --- a/uwac/libuwac/CMakeLists.txt +++ b/uwac/libuwac/CMakeLists.txt @@ -58,7 +58,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include") include_directories("${CMAKE_CURRENT_BINARY_DIR}/../include") include_directories("${CMAKE_CURRENT_BINARY_DIR}/protocols") -add_definitions(-DBUILD_IVI -DBUILD_FULLSCREEN_SHELL -DENABLE_XKBCOMMON) +add_compile_definitions(BUILD_IVI BUILD_FULLSCREEN_SHELL ENABLE_XKBCOMMON) set(${MODULE_PREFIX}_SRCS ${GENERATED_SOURCES} diff --git a/uwac/templates/CMakeLists.txt b/uwac/templates/CMakeLists.txt index 3225a7db3..1850cec5e 100644 --- a/uwac/templates/CMakeLists.txt +++ b/uwac/templates/CMakeLists.txt @@ -30,9 +30,6 @@ foreach(var ${res}) endif() endforeach() -include(CFlagsToVar) -cflagstovar(C_FLAGS) - string(REPLACE ";" " " UWAC_BUILD_CONFIG "${UWAC_BUILD_CONFIG_LIST}") cleaning_configure_file(version.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/version.h) cleaning_configure_file(buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/uwac/buildflags.h) diff --git a/uwac/templates/buildflags.h.in b/uwac/templates/buildflags.h.in index 2ac4d949b..30ca20850 100644 --- a/uwac/templates/buildflags.h.in +++ b/uwac/templates/buildflags.h.in @@ -1,11 +1,11 @@ #ifndef UWAC_BUILD_FLAGS_H #define UWAC_BUILD_FLAGS_H -#define UWAC_CFLAGS "${C_FLAGS}" +#define UWAC_CFLAGS "${CURRENT_C_FLAGS}" #define UWAC_COMPILER_ID "${CMAKE_C_COMPILER_ID}" #define UWAC_COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}" #define UWAC_TARGET_ARCH "${TARGET_ARCH}" #define UWAC_BUILD_CONFIG "${UWAC_BUILD_CONFIG}" -#define UWAC_BUILD_TYPE "${CMAKE_BUILD_TYPE}" +#define UWAC_BUILD_TYPE "${CURRENT_BUILD_CONFIG}" #endif /* UWAC_BUILD_FLAGS_H */ diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index c74d74c1c..fc9c1fc2e 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -43,7 +43,7 @@ if(NOT FREERDP_UNIFIED_BUILD) if(EXPORT_ALL_SYMBOLS) # set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - add_definitions(-DEXPORT_ALL_SYMBOLS) + add_compile_definitions(EXPORT_ALL_SYMBOLS) endif() if(CMAKE_COMPILER_IS_GNUCC) @@ -63,7 +63,7 @@ if(NOT FREERDP_UNIFIED_BUILD) endif() # MSVC compatibility with system headers - add_definitions(-DNONAMELESSUNION) + add_compile_definitions(NONAMELESSUNION) endif() if(WIN32 AND NOT UWP) @@ -107,7 +107,7 @@ option(WINPR_USE_VENDOR_PRODUCT_CONFIG_DIR option(SSPI_DLL "Define and export SSPI API symbols for usage as a Windows SSPI DLL replacement" OFF) if(SSPI_DLL) - add_definitions("-DSSPI_DLL") + add_compile_definitions("SSPI_DLL") endif() option(WITH_DEBUG_NTLM "Print NTLM debug messages" ${DEFAULT_DEBUG_OPTION}) @@ -121,7 +121,7 @@ if(WITH_DEBUG_NLA) endif() if(WITH_WINPR_DEPRECATED) - add_definitions(-DWITH_WINPR_DEPRECATED) + add_compile_definitions(WITH_WINPR_DEPRECATED) endif() # Include cmake modules @@ -141,7 +141,7 @@ include(SetFreeRDPCMakeInstallDir) include(CMakePackageConfigHelpers) if(NOT WIN32) - add_definitions(-DWINPR_CRITICAL_SECTION_DISABLE_SPINCOUNT) + add_compile_definitions(WINPR_CRITICAL_SECTION_DISABLE_SPINCOUNT) endif() # Soname versioning @@ -313,8 +313,8 @@ if(WITH_LIBRESSL) set(OPENSSL_CRYPTO_LIBRARIES ${LIBRESSL_LIBRARIES}) set(WITH_OPENSSL ON) set(OPENSSL_FOUND ON) - add_definitions("-DWITH_LIBRESSL") - add_definitions("-DWITH_OPENSSL") + add_compile_definitions("WITH_LIBRESSL") + add_compile_definitions("WITH_OPENSSL") else() find_feature(OpenSSL ${OPENSSL_FEATURE_TYPE} ${OPENSSL_FEATURE_PURPOSE} ${OPENSSL_FEATURE_DESCRIPTION}) find_feature(MbedTLS ${MBEDTLS_FEATURE_TYPE} ${MBEDTLS_FEATURE_PURPOSE} ${MBEDTLS_FEATURE_DESCRIPTION}) @@ -325,11 +325,11 @@ if(NOT OPENSSL_FOUND AND NOT MBEDTLS_FOUND AND NOT LibreSSL_FOUND) endif() if(WITH_OPENSSL AND OPENSSL_FOUND) - add_definitions("-DWITH_OPENSSL") + add_compile_definitions("WITH_OPENSSL") endif() if(WITH_MBEDTLS AND MBEDTLS_FOUND) - add_definitions("-DWITH_MBEDTLS") + add_compile_definitions("WITH_MBEDTLS") endif() enable_testing() @@ -347,14 +347,14 @@ else() endif() option(WITH_PKCS11 "encryption, certificate validation, hashing functions" ${PKCS11_DEFAULT}) if(WITH_PKCS11) - add_definitions("-DWITH_PKCS11") + add_compile_definitions("WITH_PKCS11") endif() if(BUILD_SHARED_LIBS) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWINPR_DLL") + add_compile_definitions(WINPR_DLL) endif() -add_definitions(-DWINPR_EXPORTS) +add_compile_definitions(WINPR_EXPORTS) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) diff --git a/winpr/include/CMakeLists.txt b/winpr/include/CMakeLists.txt index a85dbdb34..f31d69c36 100644 --- a/winpr/include/CMakeLists.txt +++ b/winpr/include/CMakeLists.txt @@ -15,9 +15,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -include(CFlagsToVar) -cflagstovar(C_FLAGS) - cleaning_configure_file(config/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/version.h) cleaning_configure_file(config/build-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/build-config.h) cleaning_configure_file(config/buildflags.h.in ${CMAKE_CURRENT_BINARY_DIR}/winpr/buildflags.h) diff --git a/winpr/include/config/buildflags.h.in b/winpr/include/config/buildflags.h.in index 124c43d03..a94567fd5 100644 --- a/winpr/include/config/buildflags.h.in +++ b/winpr/include/config/buildflags.h.in @@ -1,11 +1,11 @@ #ifndef WINPR_BUILD_FLAGS_H #define WINPR_BUILD_FLAGS_H -#define WINPR_CFLAGS "${C_FLAGS}" +#define WINPR_CFLAGS "${CURRENT_C_FLAGS}" #define WINPR_COMPILER_ID "${CMAKE_C_COMPILER_ID}" #define WINPR_COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}" #define WINPR_TARGET_ARCH "${TARGET_ARCH}" #define WINPR_BUILD_CONFIG "${WINPR_BUILD_CONFIG}" -#define WINPR_BUILD_TYPE "${CMAKE_BUILD_TYPE}" +#define WINPR_BUILD_TYPE "${CURRENT_BUILD_CONFIG}" #endif /* WINPR_BUILD_FLAGS_H */ diff --git a/winpr/libwinpr/CMakeLists.txt b/winpr/libwinpr/CMakeLists.txt index 05975f858..9e7c1b5ac 100644 --- a/winpr/libwinpr/CMakeLists.txt +++ b/winpr/libwinpr/CMakeLists.txt @@ -117,7 +117,7 @@ if(WITH_URIPARSER) winpr_include_directory_add(${uriparser_INCLUDE_DIRS}) winpr_library_add_private(${uriparser_LIBRARIES}) endif() - add_definitions("-DWITH_URIPARSER") + add_compile_definitions("WITH_URIPARSER") endif() if(NOT IOS) @@ -126,14 +126,14 @@ if(NOT IOS) check_function_exists(timer_settime TIMER_SETTIME) check_function_exists(timer_gettime TIMER_GETTIME) if(TIMER_CREATE AND TIMER_DELETE AND TIMER_SETTIME AND TIMER_GETTIME) - add_definitions(-DWITH_POSIX_TIMER) + add_compile_definitions(WITH_POSIX_TIMER) winpr_library_add_private(rt) endif() endif() check_function_exists(pthread_setschedprio PTHREAD_SETSCHEDPRIO) if(PTHREAD_SETSCHEDPRIO) - winpr_definition_add(-DPTHREAD_SETSCHEDPRIO) + winpr_definition_add(PTHREAD_SETSCHEDPRIO) endif() if(ANDROID) @@ -201,10 +201,10 @@ list(REMOVE_DUPLICATES WINPR_INCLUDES) addtargetwithresourcefile(${MODULE_NAME} FALSE "${WINPR_VERSION}" WINPR_SRCS) if(WITH_RESOURCE_VERSIONING) - target_compile_definitions(${MODULE_NAME} PRIVATE -DWITH_RESOURCE_VERSIONING) + target_compile_definitions(${MODULE_NAME} PRIVATE WITH_RESOURCE_VERSIONING) endif() if(WINPR_USE_VENDOR_PRODUCT_CONFIG_DIR) - target_compile_definitions(${MODULE_NAME} PRIVATE -DWINPR_USE_VENDOR_PRODUCT_CONFIG_DIR) + target_compile_definitions(${MODULE_NAME} PRIVATE WINPR_USE_VENDOR_PRODUCT_CONFIG_DIR) endif() if(APPLE) diff --git a/winpr/libwinpr/clipboard/test/CMakeLists.txt b/winpr/libwinpr/clipboard/test/CMakeLists.txt index 9370ecda1..963fc2431 100644 --- a/winpr/libwinpr/clipboard/test/CMakeLists.txt +++ b/winpr/libwinpr/clipboard/test/CMakeLists.txt @@ -22,8 +22,8 @@ if(WIN32) string(REPLACE "\\" "\\\\" TEST_CLIP_BMP "${TEST_CLIP_BMP}") endif() -add_definitions(-DTEST_CLIP_BMP="${TEST_CLIP_BMP}") -add_definitions(-DTEST_CLIP_PNG="${TEST_CLIP_PNG}") +add_compile_definitions(TEST_CLIP_BMP="${TEST_CLIP_BMP}") +add_compile_definitions(TEST_CLIP_PNG="${TEST_CLIP_PNG}") create_test_sourcelist(SRCS ${DRIVER} ${TESTS}) diff --git a/winpr/libwinpr/comm/CMakeLists.txt b/winpr/libwinpr/comm/CMakeLists.txt index edd524112..5210587c6 100644 --- a/winpr/libwinpr/comm/CMakeLists.txt +++ b/winpr/libwinpr/comm/CMakeLists.txt @@ -21,7 +21,7 @@ set(MODULE_PREFIX "WINPR_COMM") if(NOT WIN32) set(${MODULE_PREFIX}_SRCS comm.c comm.h) if(NOT EMSCRIPTEN) - winpr_definition_add(-DWINPR_HAVE_SERIAL_SUPPORT) + winpr_definition_add(WINPR_HAVE_SERIAL_SUPPORT) list( APPEND ${MODULE_PREFIX}_SRCS diff --git a/winpr/libwinpr/smartcard/CMakeLists.txt b/winpr/libwinpr/smartcard/CMakeLists.txt index 1064f6254..c5e9af87f 100644 --- a/winpr/libwinpr/smartcard/CMakeLists.txt +++ b/winpr/libwinpr/smartcard/CMakeLists.txt @@ -18,7 +18,7 @@ set(MODULE_PREFIX "WINPR_SMARTCARD") if(PCSC_WINPR_FOUND) - winpr_definition_add(-DWITH_WINPR_PCSC) + winpr_definition_add(WITH_WINPR_PCSC) endif() option(WITH_SMARTCARD_PCSC "Enable smartcard PCSC backend" ON) @@ -26,12 +26,12 @@ option(WITH_SMARTCARD_PCSC "Enable smartcard PCSC backend" ON) set(${MODULE_PREFIX}_SRCS smartcard.c smartcard.h) if(WITH_SMARTCARD_PCSC) - winpr_definition_add(-DWITH_SMARTCARD_PCSC) + winpr_definition_add(WITH_SMARTCARD_PCSC) list(APPEND ${MODULE_PREFIX}_SRCS smartcard_pcsc.c smartcard_pcsc.h) endif() if(WITH_SMARTCARD_INSPECT) - winpr_definition_add(-DWITH_SMARTCARD_INSPECT) + winpr_definition_add(WITH_SMARTCARD_INSPECT) list(APPEND ${MODULE_PREFIX}_SRCS smartcard_inspect.c smartcard_inspect.h) endif() diff --git a/winpr/libwinpr/sspi/CMakeLists.txt b/winpr/libwinpr/sspi/CMakeLists.txt index f89535ccb..64c4e465d 100644 --- a/winpr/libwinpr/sspi/CMakeLists.txt +++ b/winpr/libwinpr/sspi/CMakeLists.txt @@ -56,7 +56,7 @@ endif() option(WITH_DEBUG_SCHANNEL "Compile support for SCHANNEL debug" ${DEFAULT_DEBUG_OPTION}) if(WITH_DEBUG_SCHANNEL) - winpr_definition_add("-DWITH_DEBUG_SCHANNEL") + winpr_definition_add(WITH_DEBUG_SCHANNEL) endif() option(WITH_KRB5 "Compile support for kerberos authentication." ${KRB5_DEFAULT}) @@ -73,13 +73,13 @@ if(WITH_KRB5) winpr_library_add_link_options(${KRB5_LDFLAGS}) winpr_library_add_link_directory(${KRB5_LIBRARY_DIRS}) - winpr_definition_add("-DWITH_KRB5") + winpr_definition_add(WITH_KRB5) if(KRB5_FLAVOUR STREQUAL "MIT") - winpr_definition_add("-DWITH_KRB5_MIT") + winpr_definition_add(WITH_KRB5_MIT) list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_mit.c) elseif(KRB5_FLAVOUR STREQUAL "Heimdal") - winpr_definition_add("-DWITH_KRB5_HEIMDAL") + winpr_definition_add(WITH_KRB5_HEIMDAL) list(APPEND ${MODULE_PREFIX}_KERBEROS_SRCS Kerberos/krb5glue_heimdal.c) else() message(WARNING "Kerberos version not detected") @@ -90,7 +90,7 @@ if(WITH_KRB5) WITH_KRB5_NO_NTLM_FALLBACK "Do not fall back to NTLM if no kerberos ticket available" OFF "WITH_KRB5" OFF ) if(WITH_KRB5_NO_NTLM_FALLBACK) - add_definitions("-DWITH_KRB5_NO_NTLM_FALLBACK") + add_compile_definitions("WITH_KRB5_NO_NTLM_FALLBACK") endif() endif() diff --git a/winpr/libwinpr/timezone/CMakeLists.txt b/winpr/libwinpr/timezone/CMakeLists.txt index 1689c76a6..16fef5214 100644 --- a/winpr/libwinpr/timezone/CMakeLists.txt +++ b/winpr/libwinpr/timezone/CMakeLists.txt @@ -17,15 +17,15 @@ option(WITH_TIMEZONE_COMPILED "Use compiled in timezone definitions" ON) if(WITH_TIMEZONE_COMPILED) - winpr_definition_add(-DWITH_TIMEZONE_COMPILED) + winpr_definition_add(WITH_TIMEZONE_COMPILED) endif() include(CMakeDependentOption) cmake_dependent_option(WITH_TIMEZONE_FROM_FILE "Use timezone definitions from JSON file" OFF WITH_WINPR_JSON OFF) if(WITH_TIMEZONE_FROM_FILE) - winpr_definition_add(-DWINPR_RESOURCE_ROOT="${WINPR_RESOURCE_ROOT}") - winpr_definition_add(-DWITH_TIMEZONE_FROM_FILE) + winpr_definition_add(WINPR_RESOURCE_ROOT="${WINPR_RESOURCE_ROOT}") + winpr_definition_add(WITH_TIMEZONE_FROM_FILE) install(FILES TimeZoneNameMap.json DESTINATION ${WINPR_RESOURCE_ROOT}) endif() @@ -44,7 +44,7 @@ if(WITH_TIMEZONE_ICU) find_package(ICU COMPONENTS i18n uc REQUIRED) winpr_include_directory_add(${ICU_INCLUDE_DIRS}) winpr_library_add_private(${ICU_LIBRARIES}) - winpr_definition_add(-DWITH_TIMEZONE_ICU) + winpr_definition_add(WITH_TIMEZONE_ICU) else() list(APPEND SRCS WindowsZones.c WindowsZones.h) endif() diff --git a/winpr/libwinpr/utils/CMakeLists.txt b/winpr/libwinpr/utils/CMakeLists.txt index f9761446a..c68927470 100644 --- a/winpr/libwinpr/utils/CMakeLists.txt +++ b/winpr/libwinpr/utils/CMakeLists.txt @@ -24,7 +24,7 @@ option(WITH_LODEPNG "build WinPR with PNG support" OFF) if(WITH_LODEPNG) find_package(lodepng REQUIRED) - winpr_definition_add(-DWITH_LODEPNG) + winpr_definition_add(WITH_LODEPNG) set(WINPR_WITH_PNG ON CACHE BOOL "build cache") winpr_include_directory_add(${lodepng_INCLUDE_DIRS}) @@ -158,7 +158,7 @@ endif() if(WINPR_HAVE_EXECINFO_H) option(USE_EXECINFO "Use execinfo.h to generate backtraces" ON) if(USE_EXECINFO) - winpr_definition_add(-DUSE_EXECINFO) + winpr_definition_add(USE_EXECINFO) list(APPEND SRCS execinfo/debug.c execinfo/debug.h) endif() endif() @@ -166,7 +166,7 @@ endif() if(WINPR_HAVE_UNWIND_H) option(USE_UNWIND "Use unwind.h to generate backtraces" ON) if(USE_UNWIND) - winpr_definition_add(-DUSE_UNWIND) + winpr_definition_add(USE_UNWIND) list(APPEND SRCS unwind/debug.c unwind/debug.h) endif() endif() @@ -176,12 +176,12 @@ if(NOT WITH_JSON_DISABLED) if(JSONC_FOUND AND NOT WITH_CJSON_REQUIRED) winpr_library_add_private(${JSONC_LIBRARIES}) winpr_include_directory_add(${JSONC_INCLUDE_DIRS}) - winpr_definition_add(-DWITH_JSONC) + winpr_definition_add(WITH_JSONC) set(WITH_WINPR_JSON ON CACHE INTERNAL "internal") elseif(CJSON_FOUND) winpr_library_add_private(${CJSON_LIBRARIES}) winpr_include_directory_add(${CJSON_INCLUDE_DIRS}) - winpr_definition_add(-DWITH_CJSON) + winpr_definition_add(WITH_CJSON) set(WITH_WINPR_JSON ON CACHE INTERNAL "internal") endif() endif() diff --git a/winpr/libwinpr/utils/test/CMakeLists.txt b/winpr/libwinpr/utils/test/CMakeLists.txt index acabe5c33..24095718f 100644 --- a/winpr/libwinpr/utils/test/CMakeLists.txt +++ b/winpr/libwinpr/utils/test/CMakeLists.txt @@ -35,8 +35,8 @@ endif() create_test_sourcelist(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_DRIVER} ${${MODULE_PREFIX}_TESTS}) -add_definitions(-DTEST_SOURCE_PATH="${CMAKE_CURRENT_SOURCE_DIR}") -add_definitions(-DTEST_BINARY_PATH="${CMAKE_CURRENT_BINARY_DIR}") +add_compile_definitions(TEST_SOURCE_PATH="${CMAKE_CURRENT_SOURCE_DIR}") +add_compile_definitions(TEST_BINARY_PATH="${CMAKE_CURRENT_BINARY_DIR}") add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) diff --git a/winpr/tools/CMakeLists.txt b/winpr/tools/CMakeLists.txt index 144cec86c..559a683ad 100644 --- a/winpr/tools/CMakeLists.txt +++ b/winpr/tools/CMakeLists.txt @@ -87,7 +87,7 @@ include_directories(${WINPR_TOOLS_INCLUDES}) addtargetwithresourcefile(${MODULE_NAME} FALSE "${WINPR_VERSION}" WINPR_TOOLS_SRCS) -add_definitions(${WINPR_DEFINITIONS}) +add_compile_definitions(${WINPR_DEFINITIONS}) target_include_directories(${MODULE_NAME} INTERFACE $) target_link_libraries(${MODULE_NAME} PRIVATE ${WINPR_TOOLS_LIBS})