aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2020-03-06 12:53:10 -0800
committerAaron Rossetto <aaron.rossetto@ni.com>2020-03-18 12:53:00 -0500
commit933eca17b14cba099eb2f3ee8c31f369b99e6b39 (patch)
tree56850474e836641e3c959d9c8a565c0f147170ea /host/lib/CMakeLists.txt
parentc755531eac46470e99568adfb62c4fbbc6e860d7 (diff)
downloaduhd-933eca17b14cba099eb2f3ee8c31f369b99e6b39.tar.gz
uhd-933eca17b14cba099eb2f3ee8c31f369b99e6b39.tar.bz2
uhd-933eca17b14cba099eb2f3ee8c31f369b99e6b39.zip
cmake: Add CMakeRC module and ::rc namespace
This module allows to add binary files into UHD (e.g., for cal data storage) in a platform-independent way. The upstream CMakeRC.cmake is modified in the following way to allow linkage against a shared object: ```diff # Generate the actual static library. Each source file is just a single file # with a character array compiled in containing the contents of the # corresponding resource file. add_library(${name} STATIC ${libcpp}) set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}") set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}") target_link_libraries(${name} PUBLIC cmrc::base) set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE) + set_property(TARGET ${name} PROPERTY POSITION_INDEPENDENT_CODE ON) ``` This forces the -fPIC flag for the static object that CMakeRC generates, allowing to link it into a shared object file. The version of CMakeRC used is: a7e355290, cloned from git@github.com:vector-of-bool/cmrc.git.
Diffstat (limited to 'host/lib/CMakeLists.txt')
-rw-r--r--host/lib/CMakeLists.txt7
1 files changed, 6 insertions, 1 deletions
diff --git a/host/lib/CMakeLists.txt b/host/lib/CMakeLists.txt
index 18bc47f54..4d747c9c7 100644
--- a/host/lib/CMakeLists.txt
+++ b/host/lib/CMakeLists.txt
@@ -131,6 +131,11 @@ if(ENABLE_C_API)
endif(ENABLE_C_API)
########################################################################
+# Add common resource compiler subdirectory
+########################################################################
+add_subdirectory(rc)
+
+########################################################################
# Add DLL resource file to Windows build
########################################################################
if(MSVC)
@@ -172,7 +177,7 @@ if(ENABLE_MPMD)
list(APPEND libuhd_sources $<TARGET_OBJECTS:uhd_rpclib>)
endif()
add_library(uhd SHARED ${libuhd_sources})
-target_link_libraries(uhd ${Boost_LIBRARIES} ${libuhd_libs})
+target_link_libraries(uhd ${Boost_LIBRARIES} ${libuhd_libs} uhd_rc)
set_target_properties(uhd PROPERTIES DEFINE_SYMBOL "UHD_DLL_EXPORTS")
if(NOT LIBUHDDEV_PKG)
set_target_properties(uhd PROPERTIES SOVERSION "${UHD_ABI_VERSION}")