Add SetFreeRDPCMakeInstallDir function to abstract away platform differences
authorKyle Evans <kevans@FreeBSD.org>
Wed, 2 May 2018 15:32:26 +0000 (10:32 -0500)
committerKyle Evans <kevans@FreeBSD.org>
Wed, 2 May 2018 15:36:52 +0000 (10:36 -0500)
Different platforms/systems may install CMake modules into different places. For
instance, FreeBSD will install modules into ${PREFIX}/share/cmake/Modules while
Linux distributions might install into ${PREFIX}/lib/cmake.

This leaves us with a useful abstraction- consumers only need to care about
the name of their subdirectory, and only one place needs to be patched to change
where this subdirectory lands.

CMakeLists.txt
cmake/SetFreeRDPCMakeInstallDir.cmake [new file with mode: 0644]

index b2947af..76b97f9 100644 (file)
@@ -68,6 +68,7 @@ include(GNUInstallDirsWrapper)
 include(CMakePackageConfigHelpers)
 include(InstallFreeRDPMan)
 include(GetGitRevisionDescription)
+include(SetFreeRDPCMakeInstallDir)
 
 # Soname versioning
 set(BUILD_NUMBER 0)
diff --git a/cmake/SetFreeRDPCMakeInstallDir.cmake b/cmake/SetFreeRDPCMakeInstallDir.cmake
new file mode 100644 (file)
index 0000000..125e2f4
--- /dev/null
@@ -0,0 +1,7 @@
+function(SetFreeRDPCMakeInstallDir SETVAR subdir)
+       if(FREEBSD)
+               set(${SETVAR} "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules/${subdir}" PARENT_SCOPE)
+       else()
+               set(${SETVAR} "${CMAKE_INSTALL_LIBDIR}/cmake/${subdir}" PARENT_SCOPE)
+       endif()
+endfunction()