diff --git a/CMakeLists.txt b/CMakeLists.txt
index f4b0d3102..a319b17d6 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -554,21 +554,27 @@ endif()
# Exporting
-export(PACKAGE freerdp)
+if(${CMAKE_VERSION} VERSION_GREATER "2.8.10")
-set(FREERDP_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/FreeRDP/cmake")
+ export(PACKAGE freerdp)
-configure_package_config_file(FreeRDPConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake
- INSTALL_DESTINATION ${FREERDP_CMAKE_INSTALL_DIR}
- PATH_VARS CMAKE_INSTALL_INCLUDEDIR)
+ set(FREERDP_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/FreeRDP/cmake")
-write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
- VERSION ${FREERDP_VERSION} COMPATIBILITY SameMajorVersion)
+ set(FREERDP_INCLUDE_DIR "include")
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FreeRDPConfigVersion.cmake
- DESTINATION ${FREERDP_CMAKE_INSTALL_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)
-install(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
+ 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(EXPORT FreeRDPTargets DESTINATION ${FREERDP_CMAKE_INSTALL_DIR})
+
+endif()
# Packaging
diff --git a/FreeRDPConfig.cmake.in b/FreeRDPConfig.cmake.in
index dab53fa34..9b8f9b9a8 100644
--- a/FreeRDPConfig.cmake.in
+++ b/FreeRDPConfig.cmake.in
@@ -5,6 +5,6 @@ set(FreeRDP_VERSION_MAJOR "@FREERDP_VERSION_MAJOR@")
set(FreeRDP_VERSION_MINOR "@FREERDP_VERSION_MINOR@")
set(FreeRDP_VERSION_PATCH "@FREERDP_VERSION_PATCH@")
-set_and_check(FreeRDP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+set_and_check(FreeRDP_INCLUDE_DIR "@PACKAGE_FREERDP_INCLUDE_DIR@")
include("${CMAKE_CURRENT_LIST_DIR}/FreeRDPTargets.cmake")
diff --git a/channels/audin/client/CMakeLists.txt b/channels/audin/client/CMakeLists.txt
index 29eb740b1..2a370743c 100644
--- a/channels/audin/client/CMakeLists.txt
+++ b/channels/audin/client/CMakeLists.txt
@@ -34,13 +34,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/audin/client/opensles/CMakeLists.txt b/channels/audin/client/opensles/CMakeLists.txt
index 2cbafe28d..ff872e69d 100644
--- a/channels/audin/client/opensles/CMakeLists.txt
+++ b/channels/audin/client/opensles/CMakeLists.txt
@@ -39,10 +39,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${OPENSLES_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/audin/client/pulse/CMakeLists.txt b/channels/audin/client/pulse/CMakeLists.txt
index 1162647d8..f0ddd34a2 100644
--- a/channels/audin/client/pulse/CMakeLists.txt
+++ b/channels/audin/client/pulse/CMakeLists.txt
@@ -36,10 +36,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${PULSE_LIBRARY})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/audin/server/CMakeLists.txt b/channels/audin/server/CMakeLists.txt
index 7da71e81c..a95da3909 100644
--- a/channels/audin/server/CMakeLists.txt
+++ b/channels/audin/server/CMakeLists.txt
@@ -29,4 +29,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MODULE freerdp
MODULES freerdp-codec freerdp-utils)
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
+
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
diff --git a/channels/cliprdr/client/CMakeLists.txt b/channels/cliprdr/client/CMakeLists.txt
index 05f75d08f..4df74c706 100644
--- a/channels/cliprdr/client/CMakeLists.txt
+++ b/channels/cliprdr/client/CMakeLists.txt
@@ -37,12 +37,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MODULE winpr
MODULES winpr-crt)
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/cliprdr/server/CMakeLists.txt b/channels/cliprdr/server/CMakeLists.txt
index 3e2ef0b2d..5abc3d511 100644
--- a/channels/cliprdr/server/CMakeLists.txt
+++ b/channels/cliprdr/server/CMakeLists.txt
@@ -32,4 +32,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
+
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
diff --git a/channels/disp/client/CMakeLists.txt b/channels/disp/client/CMakeLists.txt
index eaa972ef0..704ce2334 100644
--- a/channels/disp/client/CMakeLists.txt
+++ b/channels/disp/client/CMakeLists.txt
@@ -39,12 +39,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/drdynvc/client/CMakeLists.txt b/channels/drdynvc/client/CMakeLists.txt
index 8e1d2bd39..124397d46 100644
--- a/channels/drdynvc/client/CMakeLists.txt
+++ b/channels/drdynvc/client/CMakeLists.txt
@@ -38,8 +38,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MODULE winpr
MODULES winpr-synch)
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/drdynvc/server/CMakeLists.txt b/channels/drdynvc/server/CMakeLists.txt
index 8b7c27d25..f31e55815 100644
--- a/channels/drdynvc/server/CMakeLists.txt
+++ b/channels/drdynvc/server/CMakeLists.txt
@@ -32,4 +32,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
+
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
diff --git a/channels/drive/client/CMakeLists.txt b/channels/drive/client/CMakeLists.txt
index da4796dd1..b7f0b8d94 100644
--- a/channels/drive/client/CMakeLists.txt
+++ b/channels/drive/client/CMakeLists.txt
@@ -45,12 +45,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/echo/client/CMakeLists.txt b/channels/echo/client/CMakeLists.txt
index b25a645e6..54417f093 100644
--- a/channels/echo/client/CMakeLists.txt
+++ b/channels/echo/client/CMakeLists.txt
@@ -34,12 +34,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/parallel/client/CMakeLists.txt b/channels/parallel/client/CMakeLists.txt
index 20eb06090..e9a87261d 100644
--- a/channels/parallel/client/CMakeLists.txt
+++ b/channels/parallel/client/CMakeLists.txt
@@ -36,12 +36,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/printer/client/CMakeLists.txt b/channels/printer/client/CMakeLists.txt
index f69189fbc..861de097e 100644
--- a/channels/printer/client/CMakeLists.txt
+++ b/channels/printer/client/CMakeLists.txt
@@ -56,12 +56,6 @@ endif()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/rail/client/CMakeLists.txt b/channels/rail/client/CMakeLists.txt
index 79b364c4f..b44ce1614 100644
--- a/channels/rail/client/CMakeLists.txt
+++ b/channels/rail/client/CMakeLists.txt
@@ -36,8 +36,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/rdpdr/client/CMakeLists.txt b/channels/rdpdr/client/CMakeLists.txt
index 25a09cd18..241849b9f 100644
--- a/channels/rdpdr/client/CMakeLists.txt
+++ b/channels/rdpdr/client/CMakeLists.txt
@@ -43,8 +43,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/rdpdr/server/CMakeLists.txt b/channels/rdpdr/server/CMakeLists.txt
index a7dd06c03..17a18967e 100644
--- a/channels/rdpdr/server/CMakeLists.txt
+++ b/channels/rdpdr/server/CMakeLists.txt
@@ -32,4 +32,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
+
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
diff --git a/channels/rdpei/client/CMakeLists.txt b/channels/rdpei/client/CMakeLists.txt
index 8178b29ca..2d3adf24c 100644
--- a/channels/rdpei/client/CMakeLists.txt
+++ b/channels/rdpei/client/CMakeLists.txt
@@ -41,13 +41,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
-
diff --git a/channels/rdpgfx/client/CMakeLists.txt b/channels/rdpgfx/client/CMakeLists.txt
index 271af0ddc..2e76c8ced 100644
--- a/channels/rdpgfx/client/CMakeLists.txt
+++ b/channels/rdpgfx/client/CMakeLists.txt
@@ -41,13 +41,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/rdpsnd/client/CMakeLists.txt b/channels/rdpsnd/client/CMakeLists.txt
index a2189986e..64bdb2bff 100644
--- a/channels/rdpsnd/client/CMakeLists.txt
+++ b/channels/rdpsnd/client/CMakeLists.txt
@@ -37,9 +37,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/rdpsnd/client/alsa/CMakeLists.txt b/channels/rdpsnd/client/alsa/CMakeLists.txt
index b5ba74ce2..d96a0495c 100644
--- a/channels/rdpsnd/client/alsa/CMakeLists.txt
+++ b/channels/rdpsnd/client/alsa/CMakeLists.txt
@@ -41,12 +41,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${ALSA_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client/ALSA")
diff --git a/channels/rdpsnd/client/ios/CMakeLists.txt b/channels/rdpsnd/client/ios/CMakeLists.txt
index 853e3d231..673a4f99c 100644
--- a/channels/rdpsnd/client/ios/CMakeLists.txt
+++ b/channels/rdpsnd/client/ios/CMakeLists.txt
@@ -45,12 +45,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS}
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client/ios")
diff --git a/channels/rdpsnd/client/mac/CMakeLists.txt b/channels/rdpsnd/client/mac/CMakeLists.txt
index a77cb332c..8a6f93cb8 100644
--- a/channels/rdpsnd/client/mac/CMakeLists.txt
+++ b/channels/rdpsnd/client/mac/CMakeLists.txt
@@ -45,12 +45,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS}
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client/Mac")
diff --git a/channels/rdpsnd/client/opensles/CMakeLists.txt b/channels/rdpsnd/client/opensles/CMakeLists.txt
index ee6aedf2a..dc5465a8e 100644
--- a/channels/rdpsnd/client/opensles/CMakeLists.txt
+++ b/channels/rdpsnd/client/opensles/CMakeLists.txt
@@ -38,10 +38,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${OPENSLES_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/rdpsnd/client/pulse/CMakeLists.txt b/channels/rdpsnd/client/pulse/CMakeLists.txt
index 432b6461a..d652ba234 100644
--- a/channels/rdpsnd/client/pulse/CMakeLists.txt
+++ b/channels/rdpsnd/client/pulse/CMakeLists.txt
@@ -36,12 +36,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${PULSE_LIBRARY})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client/Pulse")
diff --git a/channels/rdpsnd/client/winmm/CMakeLists.txt b/channels/rdpsnd/client/winmm/CMakeLists.txt
index 883d84b4a..a75d5fe1c 100644
--- a/channels/rdpsnd/client/winmm/CMakeLists.txt
+++ b/channels/rdpsnd/client/winmm/CMakeLists.txt
@@ -40,12 +40,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winmm.lib)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client/WinMM")
diff --git a/channels/rdpsnd/server/CMakeLists.txt b/channels/rdpsnd/server/CMakeLists.txt
index c98816d68..a5f784679 100644
--- a/channels/rdpsnd/server/CMakeLists.txt
+++ b/channels/rdpsnd/server/CMakeLists.txt
@@ -32,4 +32,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
+
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server")
diff --git a/channels/sample/client/CMakeLists.txt b/channels/sample/client/CMakeLists.txt
index 2b509b25d..da50c7efc 100644
--- a/channels/sample/client/CMakeLists.txt
+++ b/channels/sample/client/CMakeLists.txt
@@ -30,12 +30,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MODULE freerdp
MODULES freerdp-utils)
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/serial/client/CMakeLists.txt b/channels/serial/client/CMakeLists.txt
index d91c80533..d170689b5 100644
--- a/channels/serial/client/CMakeLists.txt
+++ b/channels/serial/client/CMakeLists.txt
@@ -34,12 +34,6 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/smartcard/client/CMakeLists.txt b/channels/smartcard/client/CMakeLists.txt
index aae2bbea9..859ea9b67 100644
--- a/channels/smartcard/client/CMakeLists.txt
+++ b/channels/smartcard/client/CMakeLists.txt
@@ -42,12 +42,6 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${PCSC_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/tsmf/client/CMakeLists.txt b/channels/tsmf/client/CMakeLists.txt
index 96a923c42..18f463d4f 100644
--- a/channels/tsmf/client/CMakeLists.txt
+++ b/channels/tsmf/client/CMakeLists.txt
@@ -47,13 +47,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/channels/tsmf/client/alsa/CMakeLists.txt b/channels/tsmf/client/alsa/CMakeLists.txt
index 124c52f5b..8e1fbde13 100644
--- a/channels/tsmf/client/alsa/CMakeLists.txt
+++ b/channels/tsmf/client/alsa/CMakeLists.txt
@@ -36,10 +36,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${ALSA_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/tsmf/client/ffmpeg/CMakeLists.txt b/channels/tsmf/client/ffmpeg/CMakeLists.txt
index 2a64fb774..c321d7013 100644
--- a/channels/tsmf/client/ffmpeg/CMakeLists.txt
+++ b/channels/tsmf/client/ffmpeg/CMakeLists.txt
@@ -31,24 +31,17 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MONOLITHIC ${MONOLITHIC_BUILD}
MODULE freerdp
MODULES freerdp-utils)
-
if(APPLE)
# For this to work on apple, we need to add some frameworks
- FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation )
- FIND_LIBRARY(COREVIDEO_LIBRARY CoreVideo )
- FIND_LIBRARY(COREVIDEODECODE_LIBRARY VideoDecodeAcceleration )
- set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${FFMPEG_LIBRARIES} ${COREFOUNDATION_LIBRARY} ${COREVIDEO_LIBRARY} ${COREVIDEODECODE_LIBRARY} )
+ FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation)
+ FIND_LIBRARY(COREVIDEO_LIBRARY CoreVideo)
+ FIND_LIBRARY(COREVIDEODECODE_LIBRARY VideoDecodeAcceleration)
+ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${FFMPEG_LIBRARIES} ${COREFOUNDATION_LIBRARY} ${COREVIDEO_LIBRARY} ${COREVIDEODECODE_LIBRARY})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
else()
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${FFMPEG_LIBRARIES})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
endif()
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
-
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/tsmf/client/gstreamer/CMakeLists.txt b/channels/tsmf/client/gstreamer/CMakeLists.txt
index dc544afde..5080358c8 100644
--- a/channels/tsmf/client/gstreamer/CMakeLists.txt
+++ b/channels/tsmf/client/gstreamer/CMakeLists.txt
@@ -40,10 +40,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS}
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
-
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/tsmf/client/pulse/CMakeLists.txt b/channels/tsmf/client/pulse/CMakeLists.txt
index e55f90bab..cdfa7fe5a 100644
--- a/channels/tsmf/client/pulse/CMakeLists.txt
+++ b/channels/tsmf/client/pulse/CMakeLists.txt
@@ -36,10 +36,4 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${PULSE_LIBRARY})
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
diff --git a/channels/urbdrc/client/CMakeLists.txt b/channels/urbdrc/client/CMakeLists.txt
index 6368559db..14f62b884 100644
--- a/channels/urbdrc/client/CMakeLists.txt
+++ b/channels/urbdrc/client/CMakeLists.txt
@@ -58,13 +58,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
-if(NOT STATIC_CHANNELS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH})
-endif()
-
-if(NOT BUILD_SHARED_LIBS)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT FreeRDPTargets)
-endif()
+install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_ADDIN_PATH} EXPORT FreeRDPTargets)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client")
diff --git a/client/Windows/CMakeLists.txt b/client/Windows/CMakeLists.txt
index 0f2b26d65..5bc2d5eef 100644
--- a/client/Windows/CMakeLists.txt
+++ b/client/Windows/CMakeLists.txt
@@ -63,7 +63,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
if(WITH_CLIENT_INTERFACE)
- install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
+ install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries EXPORT WinPRTargets)
add_subdirectory(cli)
else()
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)
diff --git a/cmake/CheckCmakeCompat.cmake b/cmake/CheckCmakeCompat.cmake
index 8568454de..fd746442e 100644
--- a/cmake/CheckCmakeCompat.cmake
+++ b/cmake/CheckCmakeCompat.cmake
@@ -22,7 +22,8 @@ macro(enable_cmake_compat CMVERSION)
endif()
endmacro()
-# Compatibility includes - oder does matter!
+# Compatibility includes - order does matter!
+enable_cmake_compat(2.8.11)
enable_cmake_compat(2.8.6)
enable_cmake_compat(2.8.3)
enable_cmake_compat(2.8.2)
diff --git a/cmake/compat_2.8.11/BasicConfigVersion-AnyNewerVersion.cmake.in b/cmake/compat_2.8.11/BasicConfigVersion-AnyNewerVersion.cmake.in
new file mode 100644
index 000000000..b1c4fdf81
--- /dev/null
+++ b/cmake/compat_2.8.11/BasicConfigVersion-AnyNewerVersion.cmake.in
@@ -0,0 +1,31 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+set(PACKAGE_VERSION "@CVF_VERSION@")
+
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
+ math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/cmake/compat_2.8.11/BasicConfigVersion-ExactVersion.cmake.in b/cmake/compat_2.8.11/BasicConfigVersion-ExactVersion.cmake.in
new file mode 100644
index 000000000..63f3f0339
--- /dev/null
+++ b/cmake/compat_2.8.11/BasicConfigVersion-ExactVersion.cmake.in
@@ -0,0 +1,47 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is equal to the requested version.
+# The tweak version component is ignored.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+
+set(PACKAGE_VERSION "@CVF_VERSION@")
+
+if("@CVF_VERSION@" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\..*") # strip the tweak version
+ set(CVF_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
+else()
+ set(CVF_VERSION_NO_TWEAK "@CVF_VERSION@")
+endif()
+
+if("${PACKAGE_FIND_VERSION}" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\..*") # strip the tweak version
+ set(REQUESTED_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
+else()
+ set(REQUESTED_VERSION_NO_TWEAK "${PACKAGE_FIND_VERSION}")
+endif()
+
+if("${REQUESTED_VERSION_NO_TWEAK}" STREQUAL "${CVF_VERSION_NO_TWEAK}")
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+endif()
+
+if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+endif()
+
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
+ math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/cmake/compat_2.8.11/BasicConfigVersion-SameMajorVersion.cmake.in b/cmake/compat_2.8.11/BasicConfigVersion-SameMajorVersion.cmake.in
new file mode 100644
index 000000000..4acd9bb5e
--- /dev/null
+++ b/cmake/compat_2.8.11/BasicConfigVersion-SameMajorVersion.cmake.in
@@ -0,0 +1,46 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
+# but only if the requested major version is the same as the current one.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+
+set(PACKAGE_VERSION "@CVF_VERSION@")
+
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+
+ if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.")
+ set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ else()
+ set(CVF_VERSION_MAJOR "@CVF_VERSION@")
+ endif()
+
+ if("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "${CVF_VERSION_MAJOR}")
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ endif()
+
+ if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
+
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
+ math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/cmake/compat_2.8.11/CMakePackageConfigHelpers.cmake b/cmake/compat_2.8.11/CMakePackageConfigHelpers.cmake
new file mode 100644
index 000000000..d042d5e0f
--- /dev/null
+++ b/cmake/compat_2.8.11/CMakePackageConfigHelpers.cmake
@@ -0,0 +1,248 @@
+# - CONFIGURE_PACKAGE_CONFIG_FILE(), WRITE_BASIC_PACKAGE_VERSION_FILE()
+#
+# CONFIGURE_PACKAGE_CONFIG_FILE(