Skip to content

Commit fb26900

Browse files
committed
msvc静态编译
1 parent 66f191e commit fb26900

19 files changed

+198
-155
lines changed

CMakeLists.txt

+49-43
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,15 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
140140
endif()
141141

142142
# Add definitions for static/style library
143-
OPTION(OPTION_STATIC "Build statically" OFF)
144-
MESSAGE("Build statically: ${OPTION_STATIC}")
145-
IF(OPTION_STATIC)
143+
OPTION(OPTION_RABBITIM_USE_STATIC "Build statically" OFF)
144+
MESSAGE("Build statically: ${OPTION_RABBITIM_USE_STATIC}")
145+
IF(OPTION_RABBITIM_USE_STATIC)
146146
ADD_DEFINITIONS(-DQT_STATIC)
147147
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
148148
set(CMAKE_LD_FLAGS "${CMAKE_LD_FLAGS} -static")
149-
ELSE(OPTION_STATIC)
149+
ELSE(OPTION_RABBITIM_USE_STATIC)
150150
ADD_DEFINITIONS(-DQT_SHARED)
151-
ENDIF(OPTION_STATIC)
151+
ENDIF(OPTION_RABBITIM_USE_STATIC)
152152

153153
IF(CMAKE_BUILD_TYPE MATCHES Debug)
154154
ADD_DEFINITIONS(-DDEBUG)# -DDEBUG_VIDEO_TIME )
@@ -160,7 +160,7 @@ IF(MSVC)
160160
SET(RABBITIM_SYSTEM windows)
161161
SET(TOOLCHAIN_NAME windows_msvc)
162162
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819") #删除不是GBK字符的警告
163-
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /SUBSYSTEM:WINDOWS,\"5.01\"")
163+
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /SUBSYSTEM:WINDOWS\",5.01\"")
164164
ELSEIF(MINGW)
165165
SET(RABBITIM_SYSTEM windows)
166166
SET(TOOLCHAIN_NAME windows_mingw)
@@ -187,6 +187,9 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}
187187
${CMAKE_SOURCE_DIR}/ThirdLibary/${TOOLCHAIN_NAME}/include)
188188

189189
SET(THIRD_PACKAGE_DIR ${CMAKE_SOURCE_DIR}/ThirdLibary/${TOOLCHAIN_NAME}) #第三方开发包目录
190+
IF(OPTION_RABBITIM_USE_STATIC AND EXISTS "${THIRD_PACKAGE_DIR}_static")
191+
SET(THIRD_PACKAGE_DIR ${THIRD_PACKAGE_DIR}_static)
192+
ENDIF()
190193
SET(THIRD_LIB_DIR ${THIRD_PACKAGE_DIR}/lib) #第三方库目录
191194
LINK_DIRECTORIES(${THIRD_LIB_DIR})
192195

@@ -247,12 +250,12 @@ IF(OPTION_RABBITIM_USE_SPEEX)
247250
ENDIF(OPTION_RABBITIM_USE_SPEEX)
248251

249252
#增加检测ffmpeg库
250-
OPTION(OPTION_RABBITIM_USER_FFMPEG "Use ffmpeg library" ON)
251-
IF(OPTION_RABBITIM_USER_FFMPEG)
252-
SET(RABBITIM_USER_FFMPEG ON)
253+
OPTION(OPTION_RABBITIM_USE_FFMPEG "Use ffmpeg library" ON)
254+
IF(OPTION_RABBITIM_USE_FFMPEG)
255+
SET(RABBITIM_USE_FFMPEG ON)
253256
SET(RABBITIM_PACKAGE_REQUIRES "${RABBITIM_PACKAGE_REQUIRES}, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev")
254257

255-
ADD_DEFINITIONS("-D__STDC_CONSTANT_MACROS" "-DRABBITIM_USER_FFMPEG") #ffmpeg需要
258+
ADD_DEFINITIONS("-D__STDC_CONSTANT_MACROS" "-DRABBITIM_USE_FFMPEG") #ffmpeg需要
256259
IF(PKG_CONFIG_FOUND)
257260
find_package(FFMPEG REQUIRED COMPONENTS avcodec avformat avutil swscale)
258261
IF(FFMPEG_FOUND)
@@ -263,37 +266,37 @@ IF(OPTION_RABBITIM_USER_FFMPEG)
263266
FIND_LIBRARY(FFMPEG_LIBRARIES NAMES avcodec avformat avutil swscale swresample x264 pthread)
264267
ENDIF(PKG_CONFIG_FOUND)
265268

266-
ENDIF(OPTION_RABBITIM_USER_FFMPEG)
267-
MESSAGE("Use ffmpeg library:${RABBITIM_USER_FFMPEG}\n")
269+
ENDIF(OPTION_RABBITIM_USE_FFMPEG)
270+
MESSAGE("Use ffmpeg library:${RABBITIM_USE_FFMPEG}\n")
268271

269272
#增加检测opencv库
270-
OPTION(OPTION_RABBITIM_USER_OPENCV "Use opencv library" ON)
271-
SET(RABBITIM_USER_OPENCV OFF)
272-
IF(OPTION_RABBITIM_USER_OPENCV)
273+
OPTION(OPTION_RABBITIM_USE_OPENCV "Use opencv library" ON)
274+
SET(RABBITIM_USE_OPENCV OFF)
275+
IF(OPTION_RABBITIM_USE_OPENCV)
273276

274277
find_package(OpenCV COMPONENTS core imgproc video) # videoio)
275278
IF(OpenCV_FOUND)
276-
SET(RABBITIM_USER_OPENCV ON)
279+
SET(RABBITIM_USE_OPENCV ON)
277280
INCLUDE_DIRECTORIES("${OpenCV_INCLUDE_DIRS}")
278281
LINK_DIRECTORIES(${OpenCV_LIB_DIR})
279282
ENDIF()
280283

281-
ELSEIF(OPTION_RABBITIM_USER_OPENCV)
284+
ELSEIF(OPTION_RABBITIM_USE_OPENCV)
282285
IF(ANDROID)
283-
message("android must opencv library, please install library, and -DOPTION_RABBITIM_USER_OPENCV=ON")
286+
message("android must opencv library, please install library, and -DOPTION_RABBITIM_USE_OPENCV=ON")
284287
ENDIF(ANDROID)
285-
ENDIF(OPTION_RABBITIM_USER_OPENCV)
286-
IF(RABBITIM_USER_OPENCV)
287-
add_definitions("-DRABBITIM_USER_OPENCV")
288-
ENDIF(RABBITIM_USER_OPENCV)
289-
MESSAGE("Use opencv library:${RABBITIM_USER_OPENCV}\n")
288+
ENDIF(OPTION_RABBITIM_USE_OPENCV)
289+
IF(RABBITIM_USE_OPENCV)
290+
add_definitions("-DRABBITIM_USE_OPENCV")
291+
ENDIF(RABBITIM_USE_OPENCV)
292+
MESSAGE("Use opencv library:${RABBITIM_USE_OPENCV}\n")
290293

291294
#检测openssl库
292-
OPTION(OPTION_RABBITIM_USER_OPENSSL "Use openssl library" ON)
293-
SET(RABBITIM_USER_OPENSSL OFF)
294-
IF(OPTION_RABBITIM_USER_OPENSSL)
295-
SET(RABBITIM_USER_OPENSSL ON)
296-
ADD_DEFINITIONS("-DRABBITIM_USER_OPENSSL")
295+
OPTION(OPTION_RABBITIM_USE_OPENSSL "Use openssl library" ON)
296+
SET(RABBITIM_USE_OPENSSL OFF)
297+
IF(OPTION_RABBITIM_USE_OPENSSL)
298+
SET(RABBITIM_USE_OPENSSL ON)
299+
ADD_DEFINITIONS("-DRABBITIM_USE_OPENSSL")
297300
SET(RABBITIM_PACKAGE_REQUIRES "${RABBITIM_PACKAGE_REQUIRES}, libssl-dev")
298301

299302
IF(PKG_CONFIG_FOUND AND NOT MSVC)
@@ -302,27 +305,27 @@ IF(OPTION_RABBITIM_USER_OPENSSL)
302305
message("OPENSSL_CFLAGS:${OPENSSL_CFLAGS}")
303306
add_compile_options(${OPENSSL_CFLAGS})
304307
ELSE(OPENSSL_FOUND)
305-
SET(RABBITIM_USER_OPENSSL OFF)
308+
SET(RABBITIM_USE_OPENSSL OFF)
306309
ENDIF(OPENSSL_FOUND)
307310
ELSE()
308311
find_package(OpenSSL)
309312
IF(OPENSSL_FOUND)
310313
message("OPENSSL_INCLUDE_DIR:${OPENSSL_INCLUDE_DIR}")
311314
include_directories(${OPENSSL_INCLUDE_DIR})
312315
ELSE(OPENSSL_FOUND)
313-
SET(RABBITIM_USER_OPENSSL OFF)
316+
SET(RABBITIM_USE_OPENSSL OFF)
314317
ENDIF(OPENSSL_FOUND)
315318
ENDIF()
316319

317-
ENDIF(OPTION_RABBITIM_USER_OPENSSL)
318-
MESSAGE("Use openssl library:${RABBITIM_USER_OPENSSL}\n")
320+
ENDIF(OPTION_RABBITIM_USE_OPENSSL)
321+
MESSAGE("Use openssl library:${RABBITIM_USE_OPENSSL}\n")
319322

320323
#检测libcurl库
321-
OPTION(OPTION_RABBITIM_USER_LIBCURL "Use curl library" ON)
322-
SET(RABBITIM_USER_LIBCURL OFF)
323-
IF(OPTION_RABBITIM_USER_LIBCURL)
324-
SET(RABBITIM_USER_LIBCURL ON)
325-
add_definitions("-DRABBITIM_USER_LIBCURL")
324+
OPTION(OPTION_RABBITIM_USE_LIBCURL "Use curl library" ON)
325+
SET(RABBITIM_USE_LIBCURL OFF)
326+
IF(OPTION_RABBITIM_USE_LIBCURL)
327+
SET(RABBITIM_USE_LIBCURL ON)
328+
add_definitions("-DRABBITIM_USE_LIBCURL")
326329
SET(RABBITIM_PACKAGE_REQUIRES "${RABBITIM_PACKAGE_REQUIRES}, libcurl4-openssl-dev")
327330

328331
IF(PKG_CONFIG_FOUND AND NOT MSVC)
@@ -331,34 +334,37 @@ IF(OPTION_RABBITIM_USER_LIBCURL)
331334
message("CURL_CFLAGS:${CURL_CFLAGS}")
332335
add_compile_options(${CURL_CFLAGS})
333336
ELSE(CURL_FOUND)
334-
SET(RABBITIM_USER_LIBCURL OFF)
337+
SET(RABBITIM_USE_LIBCURL OFF)
335338
ENDIF(CURL_FOUND)
336339
ELSE()
337340
find_package(CURL)
338341
if(CURL_FOUND)
339342
message("CURL_INCLUDE_DIR:${CURL_INCLUDE_DIR}")
340343
include_directories(${CURL_INCLUDE_DIR})
341344
ELSE(CURL_FOUND)
342-
SET(RABBITIM_USER_LIBCURL OFF)
345+
SET(RABBITIM_USE_LIBCURL OFF)
343346
endif(CURL_FOUND)
344347
ENDIF()
345348

346-
ENDIF(OPTION_RABBITIM_USER_LIBCURL)
347-
MESSAGE("Use curl library:${RABBITIM_USER_LIBCURL}\n")
349+
ENDIF(OPTION_RABBITIM_USE_LIBCURL)
350+
MESSAGE("Use curl library:${RABBITIM_USE_LIBCURL}\n")
348351

349352
#qxmpp库
350353
#连接静态QXMPP库时,必须加上-DQXMPP_STATIC。生成静态QXMPP库时,qmake 需要加上 QXMPP_LIBRARY_TYPE=staticlib 参数
351354
ADD_DEFINITIONS("-DQXMPP") # -DQXMPP_STATIC")
355+
IF(OPTION_RABBITIM_USE_STATIC)
356+
ADD_DEFINITIONS("-DQXMPP_STATIC")
357+
ENDIF()
352358
IF(ANDROID)
353359
ADD_DEFINITIONS("-DQXMPP_STATIC")
354360
ENDIF(ANDROID)
355361
IF(PKG_CONFIG_FOUND AND NOT MSVC)
356362
pkg_check_modules(QXMPP REQUIRED qxmpp)
357363
IF(QXMPP_FOUND)
358-
add_compile_options(${QXMPP_CFLAGS})
364+
add_compile_options(${QXMPP_CFLAGS})
359365
ENDIF(QXMPP_FOUND)
360366
ELSE()
361-
IF(OPTION_STATIC)
367+
IF(OPTION_RABBITIM_USE_STATIC)
362368
FIND_LIBRARY(QXMPP_LIBRARIES qxmpp)
363369
ELSE()
364370
FIND_LIBRARY(QXMPP_LIBRARIES qxmpp0)

Call/CallQXmpp.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include "Widgets/FrmVideo/FrameProcess.h"
1313
#include "Widgets/FrmVideo/FrmVideo.h"
1414

15-
#if ANDROID && RABBITIM_USER_OPENCV
15+
#if ANDROID && RABBITIM_USE_OPENCV
1616
#include "Widgets/FrmVideo/CameraOpencv.h"
1717
#else
1818
#include "Widgets/FrmVideo/Camera.h"
@@ -85,7 +85,7 @@ protected slots:
8585
CFrameProcess m_CaptureToRemoteFrameProcess;//发送到网络
8686
CFrameProcess m_ReciveFrameProcess;//从网络接收
8787
QThread m_VideoThread;
88-
#if ANDROID && RABBITIM_USER_OPENCV
88+
#if ANDROID && RABBITIM_USE_OPENCV
8989
CCameraOpencv m_Camera;
9090
#else
9191
CCamera m_Camera;

MainWindow.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include "Widgets/DlgOptions/DlgOptions.h"
1212
#include "Widgets/FrmSendFile/DlgSendManage.h"
1313
#include "Widgets/DlgUservCard/DlgUservCard.h"
14-
#ifdef RABBITIM_USER_LIBCURL
14+
#ifdef RABBITIM_USE_LIBCURL
1515
#include "Update/DlgUpdate.h"
1616
#endif
1717

@@ -56,7 +56,7 @@ MainWindow::MainWindow(QWidget *parent) :
5656
LoadTranslate();
5757
ReInitMenuOperator();
5858

59-
#ifdef RABBITIM_USER_LIBCURL
59+
#ifdef RABBITIM_USE_LIBCURL
6060
check = connect(this, SIGNAL(sigUpdateExec(int,QString)),
6161
SLOT(slotUpdateExec(int,QString)));
6262
Q_ASSERT(check);
@@ -883,7 +883,7 @@ int MainWindow::OpenCustomStyleMenu()
883883
return 0;
884884
}
885885

886-
#ifdef RABBITIM_USER_LIBCURL
886+
#ifdef RABBITIM_USE_LIBCURL
887887
void MainWindow::slotUpdateExec(int nError, const QString &szFile)
888888
{
889889
CDlgUpdate dlg(nError, szFile, this);

MainWindow.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private slots:
141141
CDlgSendManage* m_pSendManageDlg;//0712文件发送管理窗口
142142

143143
//程序更新功能
144-
#ifdef RABBITIM_USER_LIBCURL
144+
#ifdef RABBITIM_USE_LIBCURL
145145
public:
146146
signals:
147147
void sigUpdateExec(int nError, const QString &szFile);

RabbitIm.pri

+3-3
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,12 @@ android{
168168
FORMS +=
169169
}
170170

171-
!isEmpty(RABBITIM_USER_OPENCV) {
171+
equals(RABBITIM_USE_OPENCV, 1){
172172
SOURCES += Widgets/FrmVideo/CameraOpencv.cpp
173173
HEADERS += Widgets/FrmVideo/CameraOpencv.h
174174
}
175175

176-
!isEmpty(RABBITIM_USER_LIBCURL){
176+
equals(RABBITIM_USE_LIBCURL, 1){
177177
SOURCES += \
178178
Update/DownLoad.cpp \
179179
Update/DownLoadHandle.cpp \
@@ -187,7 +187,7 @@ android{
187187
FORMS += Update/DlgUpdate.ui
188188
}
189189

190-
!isEmpty(RABBITIM_USER_OPENSSL){
190+
equals(RABBITIM_USE_OPENSSL, 1){
191191
SOURCES += Global/Encrypt.cpp
192192
HEADERS += Global/Encrypt.h
193193
}

0 commit comments

Comments
 (0)