diff --git a/libfreerdp/CMakeLists.txt b/libfreerdp/CMakeLists.txt index 71e45891b..e3a410316 100644 --- a/libfreerdp/CMakeLists.txt +++ b/libfreerdp/CMakeLists.txt @@ -24,10 +24,10 @@ include(FindCairo) # Create imported targets for Intel IPP libraries if(IPP_FOUND) - foreach(ipp_lib ${IPP_LIBRARIES}) - add_library("${ipp_lib}_imported" STATIC IMPORTED) - set_property(TARGET "${ipp_lib}_imported" PROPERTY IMPORTED_LOCATION "${IPP_LIBRARY_DIRS}/${ipp_lib}") - endforeach() + foreach(ipp_lib ${IPP_LIBRARIES}) + add_library("${ipp_lib}_imported" STATIC IMPORTED) + set_property(TARGET "${ipp_lib}_imported" PROPERTY IMPORTED_LOCATION "${IPP_LIBRARY_DIRS}/${ipp_lib}") + endforeach() endif() set(LIBFREERDP_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -37,49 +37,49 @@ set(LIBFREERDP_INCLUDES "") set(LIBFREERDP_DEFINITIONS "") macro (freerdp_module_add) - file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") - foreach (_src ${ARGN}) - if (_relPath) - list (APPEND LIBFREERDP_SRCS "${_relPath}/${_src}") - else() - list (APPEND LIBFREERDP_SRCS "${_src}") - endif() - endforeach() - if (_relPath) - set (LIBFREERDP_SRCS ${LIBFREERDP_SRCS} PARENT_SCOPE) - endif() + file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") + foreach (_src ${ARGN}) + if (_relPath) + list (APPEND LIBFREERDP_SRCS "${_relPath}/${_src}") + else() + list (APPEND LIBFREERDP_SRCS "${_src}") + endif() + endforeach() + if (_relPath) + set (LIBFREERDP_SRCS ${LIBFREERDP_SRCS} PARENT_SCOPE) + endif() endmacro() macro (freerdp_include_directory_add) - file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") - foreach (_inc ${ARGN}) - if (IS_ABSOLUTE ${_inc}) - list (APPEND LIBFREERDP_INCLUDES "${_inc}") - else() - if (_relPath) - list (APPEND LIBFREERDP_INCLUDES "${_relPath}/${_inc}") - else() - list (APPEND LIBFREERDP_INCLUDES "${_inc}") - endif() - endif() - endforeach() - if (_relPath) - set (LIBFREERDP_INCLUDES ${LIBFREERDP_INCLUDES} PARENT_SCOPE) - endif() + file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") + foreach (_inc ${ARGN}) + if (IS_ABSOLUTE ${_inc}) + list (APPEND LIBFREERDP_INCLUDES "${_inc}") + else() + if (_relPath) + list (APPEND LIBFREERDP_INCLUDES "${_relPath}/${_inc}") + else() + list (APPEND LIBFREERDP_INCLUDES "${_inc}") + endif() + endif() + endforeach() + if (_relPath) + set (LIBFREERDP_INCLUDES ${LIBFREERDP_INCLUDES} PARENT_SCOPE) + endif() endmacro() macro (freerdp_library_add) - foreach (_lib ${ARGN}) - list (APPEND LIBFREERDP_LIBS "${_lib}") - endforeach() - set (LIBFREERDP_LIBS ${LIBFREERDP_LIBS} PARENT_SCOPE) + foreach (_lib ${ARGN}) + list (APPEND LIBFREERDP_LIBS "${_lib}") + endforeach() + set (LIBFREERDP_LIBS ${LIBFREERDP_LIBS} PARENT_SCOPE) endmacro() macro (freerdp_definition_add) - foreach (_define ${ARGN}) - list (APPEND LIBFREERDP_DEFINITIONS "${_define}") - endforeach() - set (LIBFREERDP_DEFINITIONS ${LIBFREERDP_DEFINITIONS} PARENT_SCOPE) + foreach (_define ${ARGN}) + list (APPEND LIBFREERDP_DEFINITIONS "${_define}") + endforeach() + set (LIBFREERDP_DEFINITIONS ${LIBFREERDP_DEFINITIONS} PARENT_SCOPE) endmacro() if (WITH_SWSCALE) @@ -99,20 +99,20 @@ elseif (WITH_CAIRO) include_directories(${CAIRO_INCLUDE_DIR}) freerdp_library_add(${CAIRO_LIBRARY}) else() - message(WARNING "neither swscale nor libcairo detected, compiling without image scaling support!") + message(WARNING "-DWITH_SWSCALE=OFF and -DWITH_CAIRO=OFF, compiling without image scaling support!") endif() set(${MODULE_PREFIX}_SUBMODULES - utils - common - gdi - cache - crypto - locale - core) + utils + common + gdi + cache + crypto + locale + core) foreach(${MODULE_PREFIX}_SUBMODULE ${${MODULE_PREFIX}_SUBMODULES}) - add_subdirectory(${${MODULE_PREFIX}_SUBMODULE}) + add_subdirectory(${${MODULE_PREFIX}_SUBMODULE}) endforeach() ## cmake source properties are only seen by targets in the same CMakeLists.txt @@ -120,134 +120,134 @@ endforeach() # codec set(CODEC_SRCS - codec/dsp.c - codec/color.c - codec/audio.c - codec/planar.c - codec/bitmap.c - codec/interleaved.c - codec/progressive.c - codec/rfx_bitstream.h - codec/rfx_constants.h - codec/rfx_decode.c - codec/rfx_decode.h - codec/rfx_differential.h - codec/rfx_dwt.c - codec/rfx_dwt.h - codec/rfx_encode.c - codec/rfx_encode.h - codec/rfx_quantization.c - codec/rfx_quantization.h - codec/rfx_rlgr.c - codec/rfx_rlgr.h - codec/rfx_types.h - codec/rfx.c - codec/region.c - codec/nsc.c - codec/nsc_encode.c - codec/nsc_encode.h - codec/nsc_types.h - codec/ncrush.c - codec/xcrush.c - codec/mppc.c - codec/zgfx.c - codec/clear.c - codec/jpeg.c - codec/h264.c - codec/yuv.c) + codec/dsp.c + codec/color.c + codec/audio.c + codec/planar.c + codec/bitmap.c + codec/interleaved.c + codec/progressive.c + codec/rfx_bitstream.h + codec/rfx_constants.h + codec/rfx_decode.c + codec/rfx_decode.h + codec/rfx_differential.h + codec/rfx_dwt.c + codec/rfx_dwt.h + codec/rfx_encode.c + codec/rfx_encode.h + codec/rfx_quantization.c + codec/rfx_quantization.h + codec/rfx_rlgr.c + codec/rfx_rlgr.h + codec/rfx_types.h + codec/rfx.c + codec/region.c + codec/nsc.c + codec/nsc_encode.c + codec/nsc_encode.h + codec/nsc_types.h + codec/ncrush.c + codec/xcrush.c + codec/mppc.c + codec/zgfx.c + codec/clear.c + codec/jpeg.c + codec/h264.c + codec/yuv.c) set(CODEC_SSE2_SRCS - codec/rfx_sse2.c - codec/rfx_sse2.h - codec/nsc_sse2.c - codec/nsc_sse2.h) + codec/rfx_sse2.c + codec/rfx_sse2.h + codec/nsc_sse2.c + codec/nsc_sse2.h) set(CODEC_NEON_SRCS - codec/rfx_neon.c - codec/rfx_neon.h) + codec/rfx_neon.c + codec/rfx_neon.h) if(WITH_SSE2) - set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_SSE2_SRCS}) + set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_SSE2_SRCS}) - if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") - set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "-msse2" ) - endif() + if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "-msse2" ) + endif() - if(MSVC) - set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "/arch:SSE2" ) - endif() + if(MSVC) + set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "/arch:SSE2" ) + endif() endif() if (WITH_DSP_FFMPEG) - set(CODEC_SRCS - ${CODEC_SRCS} - codec/dsp_ffmpeg.c - codec/dsp_ffmpeg.h) + set(CODEC_SRCS + ${CODEC_SRCS} + codec/dsp_ffmpeg.c + codec/dsp_ffmpeg.h) endif (WITH_DSP_FFMPEG) if (WITH_SOXR) - freerdp_library_add(${SOXR_LIBRARIES}) - include_directories(${SOXR_INCLUDE_DIR}) + freerdp_library_add(${SOXR_LIBRARIES}) + include_directories(${SOXR_INCLUDE_DIR}) endif(WITH_SOXR) if(GSM_FOUND) - freerdp_library_add(${GSM_LIBRARIES}) - include_directories(${GSM_INCLUDE_DIRS}) + freerdp_library_add(${GSM_LIBRARIES}) + include_directories(${GSM_INCLUDE_DIRS}) endif() if(LAME_FOUND) - freerdp_library_add(${LAME_LIBRARIES}) - include_directories(${LAME_INCLUDE_DIRS}) + freerdp_library_add(${LAME_LIBRARIES}) + include_directories(${LAME_INCLUDE_DIRS}) endif() if(FAAD2_FOUND) - freerdp_library_add(${FAAD2_LIBRARIES}) - include_directories(${FAAD2_INCLUDE_DIRS}) + freerdp_library_add(${FAAD2_LIBRARIES}) + include_directories(${FAAD2_INCLUDE_DIRS}) endif() if(FAAC_FOUND) - freerdp_library_add(${FAAC_LIBRARIES}) - include_directories(${FAAC_INCLUDE_DIRS}) + freerdp_library_add(${FAAC_LIBRARIES}) + include_directories(${FAAC_INCLUDE_DIRS}) endif() if(WITH_NEON) - set_source_files_properties(${CODEC_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon -Wno-unused-variable" ) - set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_NEON_SRCS}) + set_source_files_properties(${CODEC_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon -Wno-unused-variable" ) + set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_NEON_SRCS}) endif() if(WITH_JPEG) - freerdp_include_directory_add(${JPEG_INCLUDE_DIR}) - freerdp_library_add(${JPEG_LIBRARIES}) + freerdp_include_directory_add(${JPEG_INCLUDE_DIR}) + freerdp_library_add(${JPEG_LIBRARIES}) endif() if(WITH_X264) - set(CODEC_SRCS ${CODEC_SRCS} codec/h264_x264.c) - freerdp_include_directory_add(${X264_INCLUDE_DIR}) - freerdp_library_add(${X264_LIBRARIES}) + set(CODEC_SRCS ${CODEC_SRCS} codec/h264_x264.c) + freerdp_include_directory_add(${X264_INCLUDE_DIR}) + freerdp_library_add(${X264_LIBRARIES}) endif() if(WITH_OPENH264) - set(CODEC_SRCS ${CODEC_SRCS} codec/h264_openh264.c) - freerdp_include_directory_add(${OPENH264_INCLUDE_DIR}) - if (NOT WITH_OPENH264_LOADING) - freerdp_library_add(${OPENH264_LIBRARIES}) - endif (NOT WITH_OPENH264_LOADING) + set(CODEC_SRCS ${CODEC_SRCS} codec/h264_openh264.c) + freerdp_include_directory_add(${OPENH264_INCLUDE_DIR}) + if (NOT WITH_OPENH264_LOADING) + freerdp_library_add(${OPENH264_LIBRARIES}) + endif (NOT WITH_OPENH264_LOADING) endif() if(WITH_FFMPEG) - set(CODEC_SRCS ${CODEC_SRCS} codec/h264_ffmpeg.c) - freerdp_include_directory_add(${FFMPEG_INCLUDE_DIRS}) - freerdp_library_add(${FFMPEG_LIBRARIES}) + set(CODEC_SRCS ${CODEC_SRCS} codec/h264_ffmpeg.c) + freerdp_include_directory_add(${FFMPEG_INCLUDE_DIRS}) + freerdp_library_add(${FFMPEG_LIBRARIES}) endif() if(WIN32 AND WITH_MEDIA_FOUNDATION) - set(CODEC_SRCS ${CODEC_SRCS} codec/h264_mf.c) + set(CODEC_SRCS ${CODEC_SRCS} codec/h264_mf.c) endif() freerdp_module_add(${CODEC_SRCS}) if(BUILD_TESTING) - add_subdirectory(codec/test) + add_subdirectory(codec/test) endif() # /codec @@ -255,45 +255,45 @@ endif() # primitives set(PRIMITIVES_SRCS - primitives/prim_add.c - primitives/prim_andor.c - primitives/prim_alphaComp.c - primitives/prim_colors.c - primitives/prim_copy.c - primitives/prim_set.c - primitives/prim_shift.c - primitives/prim_sign.c - primitives/prim_YUV.c - primitives/prim_YCoCg.c - primitives/primitives.c - primitives/prim_internal.h) + primitives/prim_add.c + primitives/prim_andor.c + primitives/prim_alphaComp.c + primitives/prim_colors.c + primitives/prim_copy.c + primitives/prim_set.c + primitives/prim_shift.c + primitives/prim_sign.c + primitives/prim_YUV.c + primitives/prim_YCoCg.c + primitives/primitives.c + primitives/prim_internal.h) set(PRIMITIVES_SSE2_SRCS - primitives/prim_colors_opt.c - primitives/prim_set_opt.c) + primitives/prim_colors_opt.c + primitives/prim_set_opt.c) set(PRIMITIVES_SSE3_SRCS - primitives/prim_add_opt.c - primitives/prim_alphaComp_opt.c - primitives/prim_andor_opt.c - primitives/prim_shift_opt.c) + primitives/prim_add_opt.c + primitives/prim_alphaComp_opt.c + primitives/prim_andor_opt.c + primitives/prim_shift_opt.c) set(PRIMITIVES_SSSE3_SRCS - primitives/prim_sign_opt.c - primitives/prim_YCoCg_opt.c) + primitives/prim_sign_opt.c + primitives/prim_YCoCg_opt.c) if (WITH_SSE2) - set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS} - primitives/prim_YUV_ssse3.c) + set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS} + primitives/prim_YUV_ssse3.c) endif() if (WITH_NEON) - set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS} - primitives/prim_YUV_neon.c) + set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS} + primitives/prim_YUV_neon.c) endif() if (WITH_OPENCL) - set(PRIMITIVES_OPENCL_SRCS primitives/prim_YUV_opencl.c) + set(PRIMITIVES_OPENCL_SRCS primitives/prim_YUV_opencl.c) freerdp_include_directory_add(${OpenCL_INCLUDE_DIRS}) freerdp_library_add(OpenCL::OpenCL) @@ -301,42 +301,42 @@ if (WITH_OPENCL) endif() set(PRIMITIVES_OPT_SRCS - ${PRIMITIVES_SSE2_SRCS} - ${PRIMITIVES_SSE3_SRCS} - ${PRIMITIVES_SSSE3_SRCS} - ${PRIMITIVES_OPENCL_SRCS}) + ${PRIMITIVES_SSE2_SRCS} + ${PRIMITIVES_SSE3_SRCS} + ${PRIMITIVES_SSSE3_SRCS} + ${PRIMITIVES_OPENCL_SRCS}) freerdp_definition_add(-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) ### IPP Variable debugging if(WITH_IPP) - if(CMAKE_COMPILER_IS_GNUCC) - foreach(INCLDIR ${IPP_INCLUDE_DIRS}) - set(OPTIMIZATION "${OPTIMIZATION} -I${INCLDIR}") - endforeach(INCLDIR) - endif() + if(CMAKE_COMPILER_IS_GNUCC) + foreach(INCLDIR ${IPP_INCLUDE_DIRS}) + set(OPTIMIZATION "${OPTIMIZATION} -I${INCLDIR}") + endforeach(INCLDIR) + endif() endif() if(WITH_SSE2) - if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") - set_source_files_properties(${PRIMITIVES_SSE2_SRCS} - PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse2") - set_source_files_properties(${PRIMITIVES_SSE3_SRCS} - PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse3") - set_source_files_properties(${PRIMITIVES_SSSE3_SRCS} - PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mssse3") - endif() + if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang") + set_source_files_properties(${PRIMITIVES_SSE2_SRCS} + PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse2") + set_source_files_properties(${PRIMITIVES_SSE3_SRCS} + PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse3") + set_source_files_properties(${PRIMITIVES_SSSE3_SRCS} + PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mssse3") + endif() - if(MSVC) - set_source_files_properties(${PRIMITIVES_OPT_SRCS} - PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} /arch:SSE2") - endif() + if(MSVC) + set_source_files_properties(${PRIMITIVES_OPT_SRCS} + PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} /arch:SSE2") + endif() elseif(WITH_NEON) - if(CMAKE_COMPILER_IS_GNUCC) - set_source_files_properties(${PRIMITIVES_OPT_SRCS} - PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mfpu=neon") - endif() - # TODO: Add MSVC equivalent + if(CMAKE_COMPILER_IS_GNUCC) + set_source_files_properties(${PRIMITIVES_OPT_SRCS} + PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mfpu=neon") + endif() + # TODO: Add MSVC equivalent endif() set(PRIMITIVES_SRCS ${PRIMITIVES_SRCS} ${PRIMITIVES_OPT_SRCS}) @@ -344,14 +344,14 @@ set(PRIMITIVES_SRCS ${PRIMITIVES_SRCS} ${PRIMITIVES_OPT_SRCS}) freerdp_module_add(${PRIMITIVES_SRCS}) if(IPP_FOUND) - freerdp_include_directory_add(${IPP_INCLUDE_DIRS}) - foreach(ipp_lib ${IPP_LIBRARIES}) - freerdp_library_add("${ipp_lib}_imported") - endforeach() + freerdp_include_directory_add(${IPP_INCLUDE_DIRS}) + foreach(ipp_lib ${IPP_LIBRARIES}) + freerdp_library_add("${ipp_lib}_imported") + endforeach() endif() if(BUILD_TESTING AND NOT WIN32 AND NOT APPLE) - add_subdirectory(primitives/test) + add_subdirectory(primitives/test) endif() @@ -405,20 +405,20 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc DES ## cmake project if(${CMAKE_VERSION} VERSION_GREATER "2.8.10") - export(PACKAGE freerdp) + export(PACKAGE freerdp) - SetFreeRDPCMakeInstallDir(FREERDP_CMAKE_INSTALL_DIR "FreeRDP${FREERDP_VERSION_MAJOR}") + SetFreeRDPCMakeInstallDir(FREERDP_CMAKE_INSTALL_DIR "FreeRDP${FREERDP_VERSION_MAJOR}") - configure_package_config_file(FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake - INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR} - PATH_VARS FREERDP_INCLUDE_DIR) + configure_package_config_file(FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake + INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR} + PATH_VARS FREERDP_INCLUDE_DIR) - write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake - VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) + write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake + VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake - DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake + DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}) - install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}) + install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}) endif() diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index 8c945b081..05e662885 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -46,6 +46,10 @@ include(CheckCCompilerFlag) include(GNUInstallDirsWrapper) include(CMakePackageConfigHelpers) +if (NOT WIN32) + add_definitions(-DWINPR_CRITICAL_SECTION_DISABLE_SPINCOUNT) +endif() + # Soname versioning set(RAW_VERSION_STRING "3.0.0-dev") if(EXISTS "${CMAKE_SOURCE_DIR}/.source_tag") diff --git a/winpr/include/winpr/synch.h b/winpr/include/winpr/synch.h index 984fafdf6..4c75b17ae 100644 --- a/winpr/include/winpr/synch.h +++ b/winpr/include/winpr/synch.h @@ -125,14 +125,6 @@ extern "C" /* Critical Section */ -#if defined(__linux__) -/** - * Linux NPTL thread synchronization primitives are implemented using - * the futex system calls ... we can't beat futex with a spin loop. - */ -#define WINPR_CRITICAL_SECTION_DISABLE_SPINCOUNT -#endif - typedef struct _RTL_CRITICAL_SECTION { PVOID DebugInfo;