Clang support

This commit is contained in:
hunbernd 2020-05-30 02:16:59 +02:00
parent 5a7b9e416c
commit cd751f12d4
10 changed files with 35 additions and 20 deletions

View File

@ -26,6 +26,9 @@ if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%
:: Plugins
if "%ParamPlugins%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-speex mingw-w64-%RsMSYS2Architecture%-speexdsp mingw-w64-%RsMSYS2Architecture%-curl mingw-w64-%RsMSYS2Architecture%-libxslt mingw-w64-%RsMSYS2Architecture%-opencv mingw-w64-%RsMSYS2Architecture%-ffmpeg"
:: Clang
if "%ParamClang%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
:: Initialize environment
call "%~dp0env.bat" %*
if errorlevel 2 exit /B 2
@ -63,7 +66,11 @@ echo Qt %QtVersion% >> buildinfo.txt
call "%ToolsPath%\msys2-path.bat" "%SourcePath%" MSYS2SourcePath
call "%ToolsPath%\msys2-path.bat" "%EnvMSYS2Path%" MSYS2EnvMSYS2Path
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
if "%ParamClang%"=="1" (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-clang-g++ %RS_QMAKE_CONFIG%"
) else (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
)
if errorlevel 1 goto error
echo.

View File

@ -7,6 +7,7 @@ set ParamAutologin=0
set ParamPlugins=0
set ParamTor=0
set ParamWebui=0
set ParamClang=0
set CoreCount=%NUMBER_OF_PROCESSORS%
set RS_QMAKE_CONFIG=
@ -31,6 +32,8 @@ if "%~1" NEQ "" (
set ParamWebui=1
) else if "%%~a"=="singlethread" (
set CoreCount=1
) else if "%%~a"=="clang" (
set ParamClang=1
) else if "%%~a"=="CONFIG+" (
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% %1
) else (
@ -61,6 +64,10 @@ if "%Param64%"=="1" (
set RsMSYS2Architecture=x86_64
)
if "%ParamClang%"=="1" (
set RsArchitecture=%RsArchitecture%-Clang
)
if "%RsBit%"=="" goto :usage
if "%ParamRelease%"=="1" (
@ -89,7 +96,7 @@ exit /B 0
:usage
echo.
echo Usage: 32^|64 release^|debug [version autologin plugins webui singlethread]
echo Usage: 32^|64 release^|debug [autologin plugins webui singlethread clang]
echo.
echo Mandatory parameter
echo 32^|64 32-bit or 64-bit Version
@ -100,6 +107,7 @@ echo autologin Build with autologin
echo plugins Build plugins
echo webui Enable JsonAPI and pack webui files
echo singlethread Use only 1 thread for building
echo clang Use clang compiler instead of GCC
echo.
echo Parameter for pack
echo tor Pack tor version

View File

@ -285,12 +285,6 @@ int sleep(unsigned int sec)
}
#endif
int usleep(unsigned int usec)
{
Sleep(usec / 1000);
return 0;
}
/********************************** WINDOWS/UNIX SPECIFIC PART ******************/
#else // UNIX

View File

@ -159,7 +159,6 @@ int bdnet_w2u_errno(int error);
#ifndef __MINGW64_VERSION_MAJOR
int sleep(unsigned int sec);
#endif
int usleep(unsigned int usec);
#endif // END of WINDOWS defines.
/********************************** WINDOWS/UNIX SPECIFIC PART ******************/

View File

@ -237,7 +237,7 @@ win32-x-g++ {
}
################################# Windows ##########################################
win32-g++ {
win32-g++|win32-clang-g++ {
QMAKE_CC = $${QMAKE_CXX}
OBJECTS_DIR = temp/obj
MOC_DIR = temp/moc
@ -843,7 +843,7 @@ rs_jsonapi {
no_rs_cross_compiling {
DUMMYRESTBEDINPUT = FORCE
CMAKE_GENERATOR_OVERRIDE=""
win32-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
win32-g++|win32-clang-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
genrestbedlib.name = Generating librestbed.
genrestbedlib.input = DUMMYRESTBEDINPUT
genrestbedlib.output = $$clean_path($${RESTBED_BUILD_PATH}/librestbed.a)
@ -860,6 +860,7 @@ rs_jsonapi {
mkdir -p $${RESTBED_BUILD_PATH} && cd $${RESTBED_BUILD_PATH} && \
cmake \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
\"-DCMAKE_CXX_FLAGS=$${QMAKE_CXXFLAGS}\" \
$${CMAKE_GENERATOR_OVERRIDE} -DBUILD_SSL=OFF \
-DCMAKE_INSTALL_PREFIX=. -B. \
-H$$shell_path($${RESTBED_SRC_PATH}) && \
@ -940,7 +941,7 @@ rs_broadcast_discovery {
no_rs_cross_compiling {
DUMMYQMAKECOMPILERINPUT = FORCE
CMAKE_GENERATOR_OVERRIDE=""
win32-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
win32-g++|win32-clang-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
udpdiscoverycpplib.name = Generating libudp-discovery.a.
udpdiscoverycpplib.input = DUMMYQMAKECOMPILERINPUT
udpdiscoverycpplib.output = $$clean_path($${UDP_DISCOVERY_BUILD_PATH}/libudp-discovery.a)
@ -954,6 +955,7 @@ rs_broadcast_discovery {
cd $${UDP_DISCOVERY_BUILD_PATH} && \
cmake -DCMAKE_C_COMPILER=$$fixQmakeCC($$QMAKE_CC) \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
\"-DCMAKE_CXX_FLAGS=$${QMAKE_CXXFLAGS}\" \
$${CMAKE_GENERATOR_OVERRIDE} \
-DBUILD_EXAMPLE=OFF -DBUILD_TOOL=OFF \
-DCMAKE_INSTALL_PREFIX=. -B. \

View File

@ -46,7 +46,7 @@ rs_jsonapi {
LIBS *= -L$$clean_path($${RESTBED_BUILD_PATH}/) -lrestbed
} else:sLibs *= restbed
win32-g++:dLibs *= wsock32
win32-g++|win32-clang-g++:dLibs *= wsock32
}
linux-* {
@ -55,7 +55,7 @@ linux-* {
rs_deep_channels_index | rs_deep_files_index {
mLibs += xapian
win32-g++:mLibs += rpcrt4
win32-g++|win32-clang-g++:mLibs += rpcrt4
}
rs_deep_files_index_ogg {
@ -81,7 +81,7 @@ rs_broadcast_discovery {
LIBS *= -L$$clean_path($${UDP_DISCOVERY_BUILD_PATH}) -ludp-discovery
} else:sLibs *= udp-discovery
win32-g++:dLibs *= wsock32
win32-g++|win32-clang-g++:dLibs *= wsock32
}
static {

View File

@ -21,7 +21,7 @@ linux-* {
OBJECTS_DIR = temp/linux/obj
}
win32-g++ {
win32-g++|win32-clang-g++ {
HEADERS += openpgpsdk/opsstring.h
SOURCES += openpgpsdk/opsstring.c

View File

@ -59,7 +59,7 @@ rs_gui_cmark {
DUMMYCMARKINPUT = FORCE
CMAKE_GENERATOR_OVERRIDE=""
win32-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
win32-g++|win32-clang-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
gencmarklib.name = Generating libcmark.
gencmarklib.input = DUMMYCMARKINPUT
gencmarklib.output = $$clean_path($${CMARK_BUILD_PATH}/src/libcmark.a)
@ -73,6 +73,7 @@ rs_gui_cmark {
mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \
cmake \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
\"-DCMAKE_CXX_FLAGS=$${QMAKE_CXXFLAGS}\" \
$${CMAKE_GENERATOR_OVERRIDE} \
-DCMAKE_INSTALL_PREFIX=. \
-B. \
@ -209,7 +210,7 @@ win32-x-g++ {
#################################### Windows #####################################
win32-g++ {
win32-g++|win32-clang-g++ {
CONFIG(debug, debug|release) {
# show console output
CONFIG += console

View File

@ -81,7 +81,7 @@ macx {
INCLUDEPATH += . $$INC_DIR
}
win32-g++ {
win32-g++|win32-clang-g++ {
CONFIG(debug, debug|release) {
# show console output
CONFIG += console

View File

@ -631,7 +631,7 @@ android-* {
RS_THREAD_LIB =
}
win32-g++ {
win32-g++|win32-clang-g++ {
!isEmpty(EXTERNAL_LIB_DIR) {
message(Use pre-compiled libraries in $${EXTERNAL_LIB_DIR}.)
PREFIX = $$system_path($$EXTERNAL_LIB_DIR)
@ -683,6 +683,10 @@ win32-g++ {
message(***retroshare.pri:Win32 PREFIX $$PREFIX INCLUDEPATH $$INCLUDEPATH QMAKE_LIBDIR $$QMAKE_LIBDIR DEFINES $$DEFINES)
}
win32-clang-g++ {
QMAKE_CXXFLAGS += -femulated-tls
}
macx-* {
rs_macos10.8 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.8 )