Blame libfreerdp/CMakeLists.txt

Packit Service fa4841
# FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
# libfreerdp cmake build script
Packit Service fa4841
#
Packit Service fa4841
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service fa4841
#
Packit Service fa4841
# Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
# you may not use this file except in compliance with the License.
Packit Service fa4841
# You may obtain a copy of the License at
Packit Service fa4841
#
Packit Service fa4841
#     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
#
Packit Service fa4841
# Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
# distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
# See the License for the specific language governing permissions and
Packit Service fa4841
# limitations under the License.
Packit Service fa4841
Packit Service fa4841
set(MODULE_NAME "freerdp")
Packit Service fa4841
set(MODULE_PREFIX "FREERDP")
Packit Service fa4841
Packit Service b1ea74
# CMake modules includes
Packit Service b1ea74
include(FindCairo)
Packit Service b1ea74
Packit Service fa4841
# Create imported targets for Intel IPP libraries
Packit Service fa4841
Packit Service fa4841
if(IPP_FOUND)
Packit Service b1ea74
        foreach(ipp_lib ${IPP_LIBRARIES})
Packit Service b1ea74
        add_library("${ipp_lib}_imported" STATIC IMPORTED)
Packit Service b1ea74
        set_property(TARGET "${ipp_lib}_imported" PROPERTY IMPORTED_LOCATION "${IPP_LIBRARY_DIRS}/${ipp_lib}")
Packit Service b1ea74
    endforeach()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
set(LIBFREERDP_DIR ${CMAKE_CURRENT_SOURCE_DIR})
Packit Service fa4841
set(LIBFREERDP_SRCS "")
Packit Service fa4841
set(LIBFREERDP_LIBS "")
Packit Service fa4841
set(LIBFREERDP_INCLUDES "")
Packit Service fa4841
set(LIBFREERDP_DEFINITIONS "")
Packit Service fa4841
Packit Service fa4841
macro (freerdp_module_add)
Packit Service b1ea74
        file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
Packit Service b1ea74
        foreach (_src ${ARGN})
Packit Service b1ea74
                if (_relPath)
Packit Service b1ea74
                        list (APPEND LIBFREERDP_SRCS "${_relPath}/${_src}")
Packit Service b1ea74
                else()
Packit Service b1ea74
                        list (APPEND LIBFREERDP_SRCS "${_src}")
Packit Service b1ea74
                endif()
Packit Service b1ea74
        endforeach()
Packit Service b1ea74
        if (_relPath)
Packit Service b1ea74
                set (LIBFREERDP_SRCS ${LIBFREERDP_SRCS} PARENT_SCOPE)
Packit Service b1ea74
        endif()
Packit Service fa4841
endmacro()
Packit Service fa4841
Packit Service fa4841
macro (freerdp_include_directory_add)
Packit Service b1ea74
        file (RELATIVE_PATH _relPath "${LIBFREERDP_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
Packit Service b1ea74
        foreach (_inc ${ARGN})
Packit Service b1ea74
                if (IS_ABSOLUTE ${_inc})
Packit Service b1ea74
                            list (APPEND LIBFREERDP_INCLUDES "${_inc}")
Packit Service b1ea74
                else()
Packit Service b1ea74
                    if (_relPath)
Packit Service b1ea74
                            list (APPEND LIBFREERDP_INCLUDES "${_relPath}/${_inc}")
Packit Service b1ea74
                    else()
Packit Service b1ea74
                            list (APPEND LIBFREERDP_INCLUDES "${_inc}")
Packit Service b1ea74
                    endif()
Packit Service b1ea74
                endif()
Packit Service b1ea74
        endforeach()
Packit Service b1ea74
        if (_relPath)
Packit Service b1ea74
                set (LIBFREERDP_INCLUDES ${LIBFREERDP_INCLUDES} PARENT_SCOPE)
Packit Service b1ea74
        endif()
Packit Service fa4841
endmacro()
Packit Service fa4841
Packit Service fa4841
macro (freerdp_library_add)
Packit Service b1ea74
        foreach (_lib ${ARGN})
Packit Service b1ea74
                        list (APPEND LIBFREERDP_LIBS "${_lib}")
Packit Service b1ea74
        endforeach()
Packit Service b1ea74
         set (LIBFREERDP_LIBS ${LIBFREERDP_LIBS} PARENT_SCOPE)
Packit Service fa4841
endmacro()
Packit Service fa4841
Packit Service fa4841
macro (freerdp_definition_add)
Packit Service b1ea74
        foreach (_define ${ARGN})
Packit Service b1ea74
                        list (APPEND LIBFREERDP_DEFINITIONS "${_define}")
Packit Service b1ea74
        endforeach()
Packit Service b1ea74
         set (LIBFREERDP_DEFINITIONS ${LIBFREERDP_DEFINITIONS} PARENT_SCOPE)
Packit Service fa4841
endmacro()
Packit Service fa4841
Packit Service b1ea74
if (WITH_SWSCALE)
Packit Service b1ea74
    find_package(SWScale REQUIRED)
Packit Service b1ea74
endif(WITH_SWSCALE)
Packit Service b1ea74
if (WITH_CAIRO)
Packit Service b1ea74
    find_package(Cairo REQUIRED)
Packit Service b1ea74
endif(WITH_CAIRO)
Packit Service b1ea74
Packit Service b1ea74
# Prefer SWScale over Cairo, both at the same time are not possible.
Packit Service b1ea74
if (WITH_SWSCALE)
Packit Service b1ea74
    add_definitions(-DSWSCALE_FOUND=1)
Packit Service b1ea74
    include_directories(${SWScale_INCLUDE_DIR})
Packit Service b1ea74
    freerdp_library_add(${SWScale_LIBRARY})
Packit Service b1ea74
elseif (WITH_CAIRO)
Packit Service b1ea74
    add_definitions(-DCAIRO_FOUND=1)
Packit Service b1ea74
    include_directories(${CAIRO_INCLUDE_DIR})
Packit Service b1ea74
    freerdp_library_add(${CAIRO_LIBRARY})
Packit Service b1ea74
else()
Packit Service b1ea74
    message(WARNING "-DWITH_SWSCALE=OFF and -DWITH_CAIRO=OFF, compiling without image scaling support!")
Packit Service b1ea74
endif()
Packit Service b1ea74
Packit Service fa4841
set(${MODULE_PREFIX}_SUBMODULES
Packit Service b1ea74
    utils
Packit Service b1ea74
    common
Packit Service b1ea74
    gdi
Packit Service b1ea74
    cache
Packit Service b1ea74
    crypto
Packit Service b1ea74
    locale
Packit Service b1ea74
    core)
Packit Service fa4841
Packit Service fa4841
foreach(${MODULE_PREFIX}_SUBMODULE ${${MODULE_PREFIX}_SUBMODULES})
Packit Service b1ea74
    add_subdirectory(${${MODULE_PREFIX}_SUBMODULE})
Packit Service fa4841
endforeach()
Packit Service fa4841
Packit Service fa4841
## cmake source properties are only seen by targets in the same CMakeLists.txt
Packit Service fa4841
## therefore primitives and codecs need to be defined here
Packit Service fa4841
Packit Service fa4841
# codec
Packit Service fa4841
set(CODEC_SRCS
Packit Service b1ea74
    codec/dsp.c
Packit Service b1ea74
    codec/color.c
Packit Service b1ea74
    codec/audio.c
Packit Service b1ea74
    codec/planar.c
Packit Service b1ea74
    codec/bitmap.c
Packit Service b1ea74
    codec/interleaved.c
Packit Service b1ea74
    codec/progressive.c
Packit Service b1ea74
    codec/rfx_bitstream.h
Packit Service b1ea74
    codec/rfx_constants.h
Packit Service b1ea74
    codec/rfx_decode.c
Packit Service b1ea74
    codec/rfx_decode.h
Packit Service b1ea74
    codec/rfx_differential.h
Packit Service b1ea74
    codec/rfx_dwt.c
Packit Service b1ea74
    codec/rfx_dwt.h
Packit Service b1ea74
    codec/rfx_encode.c
Packit Service b1ea74
    codec/rfx_encode.h
Packit Service b1ea74
    codec/rfx_quantization.c
Packit Service b1ea74
    codec/rfx_quantization.h
Packit Service b1ea74
    codec/rfx_rlgr.c
Packit Service b1ea74
    codec/rfx_rlgr.h
Packit Service b1ea74
    codec/rfx_types.h
Packit Service b1ea74
    codec/rfx.c
Packit Service b1ea74
    codec/region.c
Packit Service b1ea74
    codec/nsc.c
Packit Service b1ea74
    codec/nsc_encode.c
Packit Service b1ea74
    codec/nsc_encode.h
Packit Service b1ea74
    codec/nsc_types.h
Packit Service b1ea74
    codec/ncrush.c
Packit Service b1ea74
    codec/xcrush.c
Packit Service b1ea74
    codec/mppc.c
Packit Service b1ea74
    codec/zgfx.c
Packit Service b1ea74
    codec/clear.c
Packit Service b1ea74
    codec/jpeg.c
Packit Service b1ea74
    codec/h264.c
Packit Service b1ea74
    codec/yuv.c)
Packit Service fa4841
Packit Service fa4841
set(CODEC_SSE2_SRCS
Packit Service b1ea74
    codec/rfx_sse2.c
Packit Service b1ea74
    codec/rfx_sse2.h
Packit Service b1ea74
    codec/nsc_sse2.c
Packit Service b1ea74
    codec/nsc_sse2.h)
Packit Service fa4841
Packit Service fa4841
set(CODEC_NEON_SRCS
Packit Service b1ea74
    codec/rfx_neon.c
Packit Service b1ea74
    codec/rfx_neon.h)
Packit Service fa4841
Packit Service fa4841
if(WITH_SSE2)
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_SSE2_SRCS})
Packit Service fa4841
Packit Service b1ea74
    if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
Packit Service b1ea74
        set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "-msse2" )
Packit Service b1ea74
    endif()
Packit Service fa4841
Packit Service b1ea74
    if(MSVC)
Packit Service b1ea74
        set_source_files_properties(${CODEC_SSE2_SRCS} PROPERTIES COMPILE_FLAGS "/arch:SSE2" )
Packit Service b1ea74
    endif()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if (WITH_DSP_FFMPEG)
Packit Service b1ea74
    set(CODEC_SRCS
Packit Service b1ea74
        ${CODEC_SRCS}
Packit Service b1ea74
        codec/dsp_ffmpeg.c
Packit Service b1ea74
        codec/dsp_ffmpeg.h)
Packit Service fa4841
endif (WITH_DSP_FFMPEG)
Packit Service fa4841
Packit Service fa4841
if (WITH_SOXR)
Packit Service b1ea74
    freerdp_library_add(${SOXR_LIBRARIES})
Packit Service b1ea74
    include_directories(${SOXR_INCLUDE_DIR})
Packit Service fa4841
endif(WITH_SOXR)
Packit Service fa4841
Packit Service fa4841
if(GSM_FOUND)
Packit Service b1ea74
    freerdp_library_add(${GSM_LIBRARIES})
Packit Service b1ea74
    include_directories(${GSM_INCLUDE_DIRS})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(LAME_FOUND)
Packit Service b1ea74
    freerdp_library_add(${LAME_LIBRARIES})
Packit Service b1ea74
    include_directories(${LAME_INCLUDE_DIRS})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(FAAD2_FOUND)
Packit Service b1ea74
    freerdp_library_add(${FAAD2_LIBRARIES})
Packit Service b1ea74
    include_directories(${FAAD2_INCLUDE_DIRS})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(FAAC_FOUND)
Packit Service b1ea74
    freerdp_library_add(${FAAC_LIBRARIES})
Packit Service b1ea74
    include_directories(${FAAC_INCLUDE_DIRS})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_NEON)
Packit Service b1ea74
    set_source_files_properties(${CODEC_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon -Wno-unused-variable" )
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} ${CODEC_NEON_SRCS})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_JPEG)
Packit Service b1ea74
    freerdp_include_directory_add(${JPEG_INCLUDE_DIR})
Packit Service b1ea74
    freerdp_library_add(${JPEG_LIBRARIES})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_X264)
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} codec/h264_x264.c)
Packit Service b1ea74
    freerdp_include_directory_add(${X264_INCLUDE_DIR})
Packit Service b1ea74
    freerdp_library_add(${X264_LIBRARIES})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_OPENH264)
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} codec/h264_openh264.c)
Packit Service b1ea74
    freerdp_include_directory_add(${OPENH264_INCLUDE_DIR})
Packit Service b1ea74
    if (NOT WITH_OPENH264_LOADING)
Packit Service b1ea74
        freerdp_library_add(${OPENH264_LIBRARIES})
Packit Service b1ea74
    endif (NOT WITH_OPENH264_LOADING)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_FFMPEG)
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} codec/h264_ffmpeg.c)
Packit Service b1ea74
    freerdp_include_directory_add(${FFMPEG_INCLUDE_DIRS})
Packit Service b1ea74
    freerdp_library_add(${FFMPEG_LIBRARIES})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WIN32 AND WITH_MEDIA_FOUNDATION)
Packit Service b1ea74
    set(CODEC_SRCS ${CODEC_SRCS} codec/h264_mf.c)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
freerdp_module_add(${CODEC_SRCS})
Packit Service fa4841
Packit Service fa4841
if(BUILD_TESTING)
Packit Service b1ea74
    add_subdirectory(codec/test)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
# /codec
Packit Service fa4841
Packit Service fa4841
# primitives
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_SRCS
Packit Service b1ea74
    primitives/prim_add.c
Packit Service b1ea74
    primitives/prim_andor.c
Packit Service b1ea74
    primitives/prim_alphaComp.c
Packit Service b1ea74
    primitives/prim_colors.c
Packit Service b1ea74
    primitives/prim_copy.c
Packit Service b1ea74
    primitives/prim_set.c
Packit Service b1ea74
    primitives/prim_shift.c
Packit Service b1ea74
    primitives/prim_sign.c
Packit Service b1ea74
    primitives/prim_YUV.c
Packit Service b1ea74
    primitives/prim_YCoCg.c
Packit Service b1ea74
    primitives/primitives.c
Packit Service b1ea74
    primitives/prim_internal.h)
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_SSE2_SRCS
Packit Service b1ea74
    primitives/prim_colors_opt.c
Packit Service b1ea74
    primitives/prim_set_opt.c)
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_SSE3_SRCS
Packit Service b1ea74
    primitives/prim_add_opt.c
Packit Service b1ea74
    primitives/prim_alphaComp_opt.c
Packit Service b1ea74
    primitives/prim_andor_opt.c
Packit Service b1ea74
    primitives/prim_shift_opt.c)
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_SSSE3_SRCS
Packit Service b1ea74
    primitives/prim_sign_opt.c
Packit Service b1ea74
    primitives/prim_YCoCg_opt.c)
Packit Service fa4841
Packit Service fa4841
if (WITH_SSE2)
Packit Service b1ea74
    set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS}
Packit Service b1ea74
        primitives/prim_YUV_ssse3.c)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if (WITH_NEON)
Packit Service b1ea74
    set(PRIMITIVES_SSSE3_SRCS ${PRIMITIVES_SSSE3_SRCS}
Packit Service b1ea74
        primitives/prim_YUV_neon.c)
Packit Service b1ea74
endif()
Packit Service b1ea74
Packit Service b1ea74
if (WITH_OPENCL)
Packit Service b1ea74
    set(PRIMITIVES_OPENCL_SRCS primitives/prim_YUV_opencl.c)
Packit Service b1ea74
Packit Service b1ea74
        freerdp_include_directory_add(${OpenCL_INCLUDE_DIRS})
Packit Service b1ea74
        freerdp_library_add(OpenCL::OpenCL)
Packit Service b1ea74
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_OPT_SRCS
Packit Service b1ea74
    ${PRIMITIVES_SSE2_SRCS}
Packit Service b1ea74
    ${PRIMITIVES_SSE3_SRCS}
Packit Service b1ea74
    ${PRIMITIVES_SSSE3_SRCS}
Packit Service b1ea74
    ${PRIMITIVES_OPENCL_SRCS})
Packit Service fa4841
Packit Service fa4841
freerdp_definition_add(-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
Packit Service fa4841
Packit Service fa4841
### IPP Variable debugging
Packit Service fa4841
if(WITH_IPP)
Packit Service b1ea74
    if(CMAKE_COMPILER_IS_GNUCC)
Packit Service b1ea74
        foreach(INCLDIR ${IPP_INCLUDE_DIRS})
Packit Service b1ea74
            set(OPTIMIZATION "${OPTIMIZATION} -I${INCLDIR}")
Packit Service b1ea74
        endforeach(INCLDIR)
Packit Service b1ea74
    endif()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WITH_SSE2)
Packit Service b1ea74
    if(CMAKE_COMPILER_IS_GNUCC OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
Packit Service b1ea74
        set_source_files_properties(${PRIMITIVES_SSE2_SRCS}
Packit Service b1ea74
            PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse2")
Packit Service b1ea74
        set_source_files_properties(${PRIMITIVES_SSE3_SRCS}
Packit Service b1ea74
            PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -msse3")
Packit Service b1ea74
        set_source_files_properties(${PRIMITIVES_SSSE3_SRCS}
Packit Service b1ea74
            PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mssse3")
Packit Service b1ea74
    endif()
Packit Service b1ea74
Packit Service b1ea74
    if(MSVC)
Packit Service b1ea74
        set_source_files_properties(${PRIMITIVES_OPT_SRCS}
Packit Service b1ea74
            PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} /arch:SSE2")
Packit Service b1ea74
    endif()
Packit Service fa4841
elseif(WITH_NEON)
Packit Service b1ea74
    if(CMAKE_COMPILER_IS_GNUCC)
Packit Service b1ea74
        set_source_files_properties(${PRIMITIVES_OPT_SRCS}
Packit Service b1ea74
            PROPERTIES COMPILE_FLAGS "${OPTIMIZATION} -mfpu=neon")
Packit Service b1ea74
    endif()
Packit Service b1ea74
    # TODO: Add MSVC equivalent
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
set(PRIMITIVES_SRCS ${PRIMITIVES_SRCS} ${PRIMITIVES_OPT_SRCS})
Packit Service fa4841
Packit Service fa4841
freerdp_module_add(${PRIMITIVES_SRCS})
Packit Service fa4841
Packit Service fa4841
if(IPP_FOUND)
Packit Service b1ea74
    freerdp_include_directory_add(${IPP_INCLUDE_DIRS})
Packit Service b1ea74
        foreach(ipp_lib ${IPP_LIBRARIES})
Packit Service b1ea74
        freerdp_library_add("${ipp_lib}_imported")
Packit Service b1ea74
    endforeach()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(BUILD_TESTING AND NOT WIN32 AND NOT APPLE)
Packit Service b1ea74
    add_subdirectory(primitives/test)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
Packit Service fa4841
# /primitives
Packit Service fa4841
Packit Service fa4841
list(REMOVE_DUPLICATES LIBFREERDP_DEFINITIONS)
Packit Service fa4841
list(REMOVE_DUPLICATES LIBFREERDP_LIBS)
Packit Service fa4841
list(REMOVE_DUPLICATES LIBFREERDP_INCLUDES)
Packit Service fa4841
include_directories(${LIBFREERDP_INCLUDES})
Packit Service fa4841
Packit Service fa4841
# On windows create dll version information.
Packit Service fa4841
# Vendor, product and year are already set in top level CMakeLists.txt
Packit Service fa4841
if (WIN32)
Packit Service fa4841
  set (RC_VERSION_MAJOR ${FREERDP_VERSION_MAJOR})
Packit Service fa4841
  set (RC_VERSION_MINOR ${FREERDP_VERSION_MINOR})
Packit Service fa4841
  set (RC_VERSION_BUILD ${FREERDP_VERSION_REVISION})
Packit Service fa4841
  set (RC_VERSION_FILE "${CMAKE_SHARED_LIBRARY_PREFIX}${MODULE_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}" )
Packit Service fa4841
Packit Service fa4841
  configure_file(
Packit Service fa4841
    ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
Packit Service fa4841
    ${CMAKE_CURRENT_BINARY_DIR}/version.rc
Packit Service fa4841
    @ONLY)
Packit Service fa4841
Packit Service fa4841
  set (LIBFREERDP_SRCS ${LIBFREERDP_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
add_library(${MODULE_NAME} ${LIBFREERDP_SRCS})
Packit Service fa4841
add_definitions(${LIBFREERDP_DEFINITIONS})
Packit Service fa4841
Packit Service fa4841
set_target_properties(${MODULE_NAME} PROPERTIES LINKER_LANGUAGE C)
Packit Service fa4841
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME ${MODULE_NAME}${FREERDP_VERSION_MAJOR})
Packit Service fa4841
Packit Service fa4841
if (WITH_LIBRARY_VERSIONING)
Packit Service fa4841
    set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${FREERDP_VERSION} SOVERSION ${FREERDP_API_VERSION})
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
Packit Service fa4841
target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${LIBFREERDP_LIBS} winpr)
Packit Service fa4841
Packit Service fa4841
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries EXPORT FreeRDPTargets)
Packit Service fa4841
if (WITH_DEBUG_SYMBOLS AND MSVC AND BUILD_SHARED_LIBS)
Packit Service fa4841
    get_target_property(OUTPUT_FILENAME ${MODULE_NAME} OUTPUT_NAME)
Packit Service fa4841
    install(FILES ${CMAKE_PDB_BINARY_DIR}/${OUTPUT_FILENAME}.pdb DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT symbols)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "FreeRDP/libfreerdp")
Packit Service fa4841
Packit Service fa4841
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/freerdp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc @ONLY)
Packit Service fa4841
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freerdp${FREERDP_VERSION_MAJOR}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
Packit Service fa4841
Packit Service fa4841
## cmake project
Packit Service fa4841
if(${CMAKE_VERSION} VERSION_GREATER "2.8.10")
Packit Service fa4841
Packit Service b1ea74
    export(PACKAGE freerdp)
Packit Service fa4841
Packit Service b1ea74
    SetFreeRDPCMakeInstallDir(FREERDP_CMAKE_INSTALL_DIR "FreeRDP${FREERDP_VERSION_MAJOR}")
Packit Service fa4841
Packit Service b1ea74
    configure_package_config_file(FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake
Packit Service b1ea74
        INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}
Packit Service b1ea74
        PATH_VARS FREERDP_INCLUDE_DIR)
Packit Service fa4841
Packit Service b1ea74
    write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
Packit Service b1ea74
        VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
Packit Service fa4841
Packit Service b1ea74
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
Packit Service b1ea74
        DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
Packit Service fa4841
Packit Service b1ea74
    install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
Packit Service fa4841
Packit Service fa4841
endif()