-
Notifications
You must be signed in to change notification settings - Fork 48
/
InstallPrebuilt.cmake
148 lines (128 loc) · 5.35 KB
/
InstallPrebuilt.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
############################################################
## Pothos SDR environment build sub-script
##
## This script installs pre-built DLLs into the dest,
## and sets dependency variables for the build scripts
##
## * zadig (prebuilt executable)
## * boost (prebuilt runtime dlls)
## * fx3 (prebuilt static libs)
## * swig (prebuilt generator)
## * fftw (prebuilt runtime dlls)
## * liquiddsp (prebuilt runtime dlls)
############################################################
############################################################
## Zadig for USB devices
############################################################
set(ZADIG_NAME "zadig-2.5.exe")
if (NOT EXISTS "${CMAKE_BINARY_DIR}/${ZADIG_NAME}")
message(STATUS "Downloading zadig...")
file(DOWNLOAD
"https://github.com/pbatard/libwdi/releases/download/b730/zadig-2.5.exe"
${CMAKE_BINARY_DIR}/${ZADIG_NAME}
)
message(STATUS "...done")
endif ()
install(FILES "${CMAKE_BINARY_DIR}/${ZADIG_NAME}" DESTINATION bin)
list(APPEND CPACK_PACKAGE_EXECUTABLES "zadig-2.5" "Zadig v2.5")
list(APPEND CPACK_CREATE_DESKTOP_LINKS "zadig-2.5")
############################################################
## Boost dependency (prebuilt)
############################################################
set(BOOST_ROOT C:/local/boost_1_75_0)
set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib64-msvc-14.2)
set(BOOST_DLL_SUFFIX vc142-mt-x64-1_75.dll)
message(STATUS "BOOST_ROOT: ${BOOST_ROOT}")
message(STATUS "BOOST_LIBRARYDIR: ${BOOST_LIBRARYDIR}")
message(STATUS "BOOST_DLL_SUFFIX: ${BOOST_DLL_SUFFIX}")
if (EXISTS ${BOOST_ROOT})
install(FILES
"${BOOST_LIBRARYDIR}/boost_thread-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_system-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_date_time-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_chrono-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_serialization-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_regex-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_filesystem-${BOOST_DLL_SUFFIX}"
"${BOOST_LIBRARYDIR}/boost_program_options-${BOOST_DLL_SUFFIX}"
DESTINATION bin
)
install(FILES ${BOOST_ROOT}/LICENSE_1_0.txt DESTINATION licenses/Boost)
else()
message(STATUS "Prebuilt boost not found (${BOOST_ROOT})")
endif()
############################################################
## Cypress API (prebuilt)
############################################################
set(FX3_SDK_PATH "C:/Program Files (x86)/Cypress/EZ-USB FX3 SDK/1.3")
if (EXISTS ${FX3_SDK_PATH})
message(STATUS "FX3_SDK_PATH: ${FX3_SDK_PATH}")
set(FX3_SDK_FOUND TRUE)
else()
message(STATUS "!FX3 SDK not found (${FX3_SDK_PATH})")
set(FX3_SDK_FOUND FALSE)
endif()
#nothing to install, limesuite uses the static library
############################################################
## SWIG dependency (prebuilt)
############################################################
MyExternalProject_Add(swig
URL https://downloads.sourceforge.net/project/swig/swigwin/swigwin-4.0.2/swigwin-4.0.2.zip
URL_MD5 009926b512aee9318546bdd4c7eab6f9
CONFIGURE_COMMAND echo "..."
BUILD_COMMAND echo "..."
INSTALL_COMMAND echo "..."
LICENSE_FILES LICENSE LICENSE-GPL COPYRIGHT
)
ExternalProject_Get_Property(swig SOURCE_DIR)
set(SWIG_EXECUTABLE ${SOURCE_DIR}/swig.exe)
set(SWIG_DIR ${SOURCE_DIR}/Lib)
############################################################
## FFTW (prebuilt)
############################################################
MyExternalProject_Add(fftw
URL ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll64.zip
URL_MD5 cb3c5ad19a89864f036e7a2dd5be168c
CONFIGURE_COMMAND echo "..."
BUILD_COMMAND lib /machine:x64 /def:libfftw3f-3.def
BUILD_IN_SOURCE TRUE
INSTALL_COMMAND echo "..."
LICENSE_FILES COPYING COPYRIGHT
)
ExternalProject_Get_Property(fftw SOURCE_DIR)
set(FFTW3F_INCLUDE_DIRS ${SOURCE_DIR})
set(FFTW3F_LIBRARIES ${SOURCE_DIR}/libfftw3f-3.lib)
install(FILES "${SOURCE_DIR}/libfftw3f-3.dll" DESTINATION bin)
############################################################
## LiquidDSP (prebuilt)
##
## external directory in CubicSDR (thanks!)
############################################################
MyExternalProject_Add(liquiddsp
GIT_REPOSITORY https://github.com/cjcliffe/CubicSDR.git
CONFIGURE_COMMAND echo "Configure liquiddsp..."
BUILD_COMMAND echo "..."
INSTALL_COMMAND echo "..."
LICENSE_FILES external/liquid-dsp/COPYING
)
ExternalProject_Get_Property(liquiddsp SOURCE_DIR)
set(SOURCE_DIR "${SOURCE_DIR}/external/liquid-dsp")
#use these variable to setup liquiddsp in dependent projects
set(LIQUIDDSP_INCLUDE_DIR ${SOURCE_DIR}/include)
set(LIQUIDDSP_LIBRARY ${SOURCE_DIR}/msvc/64/libliquid.lib)
set(LIQUIDDSP_DLL ${SOURCE_DIR}/msvc/64/libliquid.dll)
#external install commands, variables use build paths
install(FILES ${LIQUIDDSP_INCLUDE_DIR}/liquid/liquid.h DESTINATION include/liquid)
install(FILES ${LIQUIDDSP_LIBRARY} DESTINATION lib)
install(FILES ${LIQUIDDSP_DLL} DESTINATION bin)
############################################################
## SDRplay API
############################################################
get_filename_component(SDRPLAY_API_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\SDRplay\\Service\\API;Install_Dir]" ABSOLUTE)
if (EXISTS "${SDRPLAY_API_DIR}")
message(STATUS "SDRPLAY_API_DIR: ${SDRPLAY_API_DIR}")
install(
FILES ${SDRPLAY_API_DIR}/x64/sdrplay_api.dll
DESTINATION bin
)
endif ()