Merge pull request #66 from Aang23/master

Support installation via CMake
This commit is contained in:
AlexandreRouma 2021-02-11 22:53:15 +01:00 committed by GitHub
commit f879a775f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 112 additions and 15 deletions

View File

@ -85,3 +85,19 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
endif () endif ()
# cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/Users/Alex/vcpkg/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 15 2017 Win64" # cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/Users/Alex/vcpkg/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 15 2017 Win64"
# Default to /usr for CMAKE_INSTALL_PREFIX
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Default install prefix" FORCE)
endif()
# Install directives
install(TARGETS sdrpp DESTINATION bin)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/root/res/bandplans DESTINATION share/sdrpp)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/root/res/colormaps DESTINATION share/sdrpp)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/root/res/fonts DESTINATION share/sdrpp)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/root/res/icons DESTINATION share/sdrpp)
# Create uninstall target
configure_file(${CMAKE_SOURCE_DIR}/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY)
add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)

View File

@ -29,3 +29,6 @@ else (MSVC)
target_link_directories(airspy_source PUBLIC ${LIBAIRSPYHF_LIBRARY_DIRS}) target_link_directories(airspy_source PUBLIC ${LIBAIRSPYHF_LIBRARY_DIRS})
target_link_libraries(airspy_source PUBLIC ${LIBAIRSPYHF_LIBRARIES}) target_link_libraries(airspy_source PUBLIC ${LIBAIRSPYHF_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS airspy_source DESTINATION lib/sdrpp/plugins)

View File

@ -29,3 +29,6 @@ else (MSVC)
target_link_directories(airspyhf_source PUBLIC ${LIBAIRSPYHF_LIBRARY_DIRS}) target_link_directories(airspyhf_source PUBLIC ${LIBAIRSPYHF_LIBRARY_DIRS})
target_link_libraries(airspyhf_source PUBLIC ${LIBAIRSPYHF_LIBRARIES}) target_link_libraries(airspyhf_source PUBLIC ${LIBAIRSPYHF_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS airspyhf_source DESTINATION lib/sdrpp/plugins)

View File

@ -30,3 +30,6 @@ else (MSVC)
target_link_libraries(sdrpp_core PUBLIC ${PORTAUDIO_LIBRARIES}) target_link_libraries(sdrpp_core PUBLIC ${PORTAUDIO_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS audio_sink DESTINATION lib/sdrpp/plugins)

32
cmake_uninstall.cmake.in Normal file
View File

@ -0,0 +1,32 @@
# http://www.vtk.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
STRING(REGEX REPLACE "\n" ";" files "${files}")
FOREACH(file ${files})
MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
IF(EXISTS "$ENV{DESTDIR}${file}")
EXEC_PROGRAM(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
ENDIF(NOT "${rm_retval}" STREQUAL 0)
ELSEIF(IS_SYMLINK "$ENV{DESTDIR}${file}")
EXEC_PROGRAM(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
ENDIF(NOT "${rm_retval}" STREQUAL 0)
ELSE(EXISTS "$ENV{DESTDIR}${file}")
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
ENDIF(EXISTS "$ENV{DESTDIR}${file}")
ENDFOREACH(file)

View File

@ -10,6 +10,9 @@ else()
endif (MSVC) endif (MSVC)
add_definitions(-DSDRPP_IS_CORE) add_definitions(-DSDRPP_IS_CORE)
# Set the install prefix
add_compile_definitions(INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
# Main code # Main code
file(GLOB_RECURSE SRC "src/*.cpp" "src/*.c") file(GLOB_RECURSE SRC "src/*.cpp" "src/*.c")
@ -88,3 +91,6 @@ endif ()
set(CORE_FILES ${RUNTIME_OUTPUT_DIRECTORY} PARENT_SCOPE) set(CORE_FILES ${RUNTIME_OUTPUT_DIRECTORY} PARENT_SCOPE)
# cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/Users/Alex/vcpkg/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 15 2017 Win64" # cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/Users/Alex/vcpkg/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 15 2017 Win64"
# Install directives
install(TARGETS sdrpp_core DESTINATION lib)

View File

@ -28,6 +28,10 @@
#include <Windows.h> #include <Windows.h>
#endif #endif
#ifndef INSTALL_PREFIX
#define INSTALL_PREFIX "/usr"
#endif
namespace core { namespace core {
ConfigManager configManager; ConfigManager configManager;
ScriptManager scriptManager; ScriptManager scriptManager;
@ -146,8 +150,8 @@ int sdrpp_main(int argc, char *argv[]) {
defConfig["modulesDirectory"] = "./modules"; defConfig["modulesDirectory"] = "./modules";
defConfig["resourcesDirectory"] = "./res"; defConfig["resourcesDirectory"] = "./res";
#else #else
defConfig["modulesDirectory"] = "/usr/lib/sdrpp/plugins"; defConfig["modulesDirectory"] = (std::string)INSTALL_PREFIX + "/lib/sdrpp/plugins";
defConfig["resourcesDirectory"] = "/usr/share/sdrpp"; defConfig["resourcesDirectory"] = (std::string)INSTALL_PREFIX + "/share/sdrpp";
#endif #endif
// Load config // Load config

View File

@ -14,3 +14,6 @@ file(GLOB SRC "src/*.cpp")
add_library(file_source SHARED ${SRC}) add_library(file_source SHARED ${SRC})
target_link_libraries(file_source PRIVATE sdrpp_core) target_link_libraries(file_source PRIVATE sdrpp_core)
set_target_properties(file_source PROPERTIES PREFIX "") set_target_properties(file_source PROPERTIES PREFIX "")
# Install directives
install(TARGETS file_source DESTINATION lib/sdrpp/plugins)

View File

@ -29,3 +29,6 @@ else (MSVC)
target_link_directories(hackrf_source PUBLIC ${LIBHACKRF_LIBRARY_DIRS}) target_link_directories(hackrf_source PUBLIC ${LIBHACKRF_LIBRARY_DIRS})
target_link_libraries(hackrf_source PUBLIC ${LIBHACKRF_LIBRARIES}) target_link_libraries(hackrf_source PUBLIC ${LIBHACKRF_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS hackrf_source DESTINATION lib/sdrpp/plugins)

View File

@ -36,3 +36,6 @@ else (MSVC)
target_link_directories(plutosdr_source PUBLIC ${LIBAD9361_LIBRARY_DIRS}) target_link_directories(plutosdr_source PUBLIC ${LIBAD9361_LIBRARY_DIRS})
target_link_libraries(plutosdr_source PUBLIC ${LIBAD9361_LIBRARIES}) target_link_libraries(plutosdr_source PUBLIC ${LIBAD9361_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS plutosdr_source DESTINATION lib/sdrpp/plugins)

View File

@ -14,3 +14,6 @@ include_directories("src/")
add_library(radio SHARED ${SRC}) add_library(radio SHARED ${SRC})
target_link_libraries(radio PRIVATE sdrpp_core) target_link_libraries(radio PRIVATE sdrpp_core)
set_target_properties(radio PROPERTIES PREFIX "") set_target_properties(radio PROPERTIES PREFIX "")
# Install directives
install(TARGETS radio DESTINATION lib/sdrpp/plugins)

View File

@ -14,3 +14,6 @@ include_directories("src/")
add_library(recorder SHARED ${SRC}) add_library(recorder SHARED ${SRC})
target_link_libraries(recorder PRIVATE sdrpp_core) target_link_libraries(recorder PRIVATE sdrpp_core)
set_target_properties(recorder PROPERTIES PREFIX "") set_target_properties(recorder PROPERTIES PREFIX "")
# Install directives
install(TARGETS recorder DESTINATION lib/sdrpp/plugins)

View File

@ -18,3 +18,6 @@ set_target_properties(rtl_tcp_source PROPERTIES PREFIX "")
if(WIN32) if(WIN32)
target_link_libraries(rtl_tcp_source PRIVATE wsock32 ws2_32) target_link_libraries(rtl_tcp_source PRIVATE wsock32 ws2_32)
endif() endif()
# Install directives
install(TARGETS rtl_tcp_source DESTINATION lib/sdrpp/plugins)

View File

@ -15,3 +15,6 @@ file(GLOB CYAPI "src/CyAPI/*.cpp")
add_library(rx888_source SHARED ${SRC} ${CYAPI}) add_library(rx888_source SHARED ${SRC} ${CYAPI})
target_link_libraries(rx888_source PRIVATE sdrpp_core) target_link_libraries(rx888_source PRIVATE sdrpp_core)
set_target_properties(rx888_source PROPERTIES PREFIX "") set_target_properties(rx888_source PROPERTIES PREFIX "")
# Install directives
install(TARGETS rx888_source DESTINATION lib/sdrpp/plugins)

View File

@ -30,3 +30,6 @@ else (MSVC)
target_link_directories(sdrplay_source PUBLIC ${LIBSDRPLAY_LIBRARY_DIRS}) target_link_directories(sdrplay_source PUBLIC ${LIBSDRPLAY_LIBRARY_DIRS})
target_link_libraries(sdrplay_source PUBLIC ${LIBSDRPLAY_LIBRARIES}) target_link_libraries(sdrplay_source PUBLIC ${LIBSDRPLAY_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS sdrplay_source DESTINATION lib/sdrpp/plugins)

View File

@ -30,3 +30,6 @@ else (MSVC)
target_link_directories(soapy_source PUBLIC ${SOAPY_LIBRARY_DIRS}) target_link_directories(soapy_source PUBLIC ${SOAPY_LIBRARY_DIRS})
target_link_libraries(soapy_source PUBLIC ${SOAPY_LIBRARIES}) target_link_libraries(soapy_source PUBLIC ${SOAPY_LIBRARIES})
endif (MSVC) endif (MSVC)
# Install directives
install(TARGETS soapy_source DESTINATION lib/sdrpp/plugins)

View File

@ -18,3 +18,6 @@ set_target_properties(spyserver_source PROPERTIES PREFIX "")
if(WIN32) if(WIN32)
target_link_libraries(spyserver_source PRIVATE wsock32 ws2_32) target_link_libraries(spyserver_source PRIVATE wsock32 ws2_32)
endif() endif()
# Install directives
install(TARGETS spyserver_source DESTINATION lib/sdrpp/plugins)