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 :: 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" 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 :: Initialize environment
call "%~dp0env.bat" %* call "%~dp0env.bat" %*
if errorlevel 2 exit /B 2 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" "%SourcePath%" MSYS2SourcePath
call "%ToolsPath%\msys2-path.bat" "%EnvMSYS2Path%" MSYS2EnvMSYS2Path 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 if errorlevel 1 goto error
echo. echo.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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