Merge pull request #1491 from hunbernd/fix/jsonapi

Fix jsonapi compilation
This commit is contained in:
G10h4ck 2019-03-27 10:23:45 +01:00 committed by GitHub
commit 72e0a9607b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 36 deletions

View file

@ -31,7 +31,7 @@ rs_jsonapi:isEmpty(JSONAPI_GENERATOR_EXE) {
SUBDIRS += libbitdht SUBDIRS += libbitdht
libbitdht.file = libbitdht/src/libbitdht.pro libbitdht.file = libbitdht/src/libbitdht.pro
libretroshare.depends = openpgpsdk libbitdht libretroshare.depends += openpgpsdk libbitdht
SUBDIRS += libretroshare SUBDIRS += libretroshare
libretroshare.file = libretroshare/src/libretroshare.pro libretroshare.file = libretroshare/src/libretroshare.pro
@ -39,7 +39,7 @@ libretroshare.file = libretroshare/src/libretroshare.pro
libresapi { libresapi {
SUBDIRS += libresapi SUBDIRS += libresapi
libresapi.file = libresapi/src/libresapi.pro libresapi.file = libresapi/src/libresapi.pro
libresapi.depends = libretroshare libresapi.depends += libretroshare
} }
retroshare_gui { retroshare_gui {

View file

@ -140,7 +140,7 @@ int main(int argc, char *argv[])
QString refid(member.attributes().namedItem("refid").nodeValue()); QString refid(member.attributes().namedItem("refid").nodeValue());
QString methodName(member.firstChildElement("name").toElement().text()); QString methodName(member.firstChildElement("name").toElement().text());
bool requiresAuth = true; bool requiresAuth = true;
QString defFilePath(doxPrefix + refid.split('_')[0] + ".xml"); QString defFilePath(doxPrefix + refid.left(refid.lastIndexOf('_')) + ".xml");
qDebug() << "Looking for" << typeName << methodName << "into" qDebug() << "Looking for" << typeName << methodName << "into"
<< typeFilePath; << typeFilePath;

View file

@ -862,45 +862,57 @@ rs_jsonapi {
WRAPPERS_REG_FILE=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-wrappers.inl) WRAPPERS_REG_FILE=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-wrappers.inl)
no_rs_cross_compiling { no_rs_cross_compiling {
restbed.target = $$clean_path($${RESTBED_BUILD_PATH}/library/librestbed.a) DUMMYRESTBEDINPUT = FORCE
restbed.commands = \ CMAKE_GENERATOR_OVERRIDE=""
cd $${RS_SRC_PATH};\ win32-g++:CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
git submodule update --init --recommend-shallow supportlibs/restbed;\ genrestbedlib.name = Generating libresbed.
cd $${RESTBED_SRC_PATH};\ genrestbedlib.input = DUMMYRESTBEDINPUT
git submodule update --init --recommend-shallow dependency/asio;\ genrestbedlib.output = $$clean_path($${RESTBED_BUILD_PATH}/librestbed.a)
git submodule update --init --recommend-shallow dependency/catch;\ genrestbedlib.CONFIG += target_predeps combine
git submodule update --init --recommend-shallow dependency/kashmir;\ genrestbedlib.variable_out = PRE_TARGETDEPS
mkdir -p $${RESTBED_BUILD_PATH}; cd $${RESTBED_BUILD_PATH};\ genrestbedlib.commands = \
cmake -DCMAKE_CXX_COMPILER=$$QMAKE_CXX -DBUILD_SSL=OFF \ cd $${RS_SRC_PATH} && \
-DCMAKE_INSTALL_PREFIX=. -B. -H$$shell_path($${RESTBED_SRC_PATH});\ git submodule update --init --recommend-shallow supportlibs/restbed && \
make; make install cd $${RESTBED_SRC_PATH} && \
QMAKE_EXTRA_TARGETS += restbed git submodule update --init --recommend-shallow dependency/asio && \
libretroshare.depends += restbed git submodule update --init --recommend-shallow dependency/catch && \
PRE_TARGETDEPS *= $${restbed.target} git submodule update --init --recommend-shallow dependency/kashmir && \
mkdir -p $${RESTBED_BUILD_PATH}; cd $${RESTBED_BUILD_PATH} && \
cmake -DCMAKE_CXX_COMPILER=$$QMAKE_CXX $${CMAKE_GENERATOR_OVERRIDE} -DBUILD_SSL=OFF \
-DCMAKE_INSTALL_PREFIX=. -B. -H$$shell_path($${RESTBED_SRC_PATH}) && \
make
QMAKE_EXTRA_COMPILERS += genrestbedlib
RESTBED_HEADER_FILE=$$clean_path($${RESTBED_BUILD_PATH}/include/restbed)
genrestbedheader.name = Generating restbed header.
genrestbedheader.input = genrestbedlib.output
genrestbedheader.output = $${RESTBED_HEADER_FILE}
genrestbedheader.CONFIG += target_predeps combine no_link
genrestbedheader.variable_out = HEADERS
genrestbedheader.commands = cd $${RESTBED_BUILD_PATH} && make install
QMAKE_EXTRA_COMPILERS += genrestbedheader
} }
PRE_TARGETDEPS *= $${JSONAPI_GENERATOR_EXE}
INCLUDEPATH *= $${JSONAPI_GENERATOR_OUT} INCLUDEPATH *= $${JSONAPI_GENERATOR_OUT}
GENERATED_HEADERS += $${WRAPPERS_INCL_FILE} DEPENDPATH *= $${JSONAPI_GENERATOR_OUT}
APIHEADERS = $$files($${RS_SRC_PATH}/libretroshare/src/retroshare/*.h)
#Make sure that the jsonapigenerator executable are ready
APIHEADERS += $${JSONAPI_GENERATOR_EXE}
jsonwrappersincl.target = $${WRAPPERS_INCL_FILE} genjsonapi.name = Generating jsonapi headers.
jsonwrappersincl.commands = \ genjsonapi.input = APIHEADERS
genjsonapi.output = $${WRAPPERS_INCL_FILE} $${WRAPPERS_REG_FILE}
genjsonapi.clean = $${WRAPPERS_INCL_FILE} $${WRAPPERS_REG_FILE}
genjsonapi.CONFIG += target_predeps combine no_link
genjsonapi.variable_out = HEADERS
genjsonapi.commands = \
mkdir -p $${JSONAPI_GENERATOR_OUT} && \ mkdir -p $${JSONAPI_GENERATOR_OUT} && \
cp $${DOXIGEN_CONFIG_SRC} $${DOXIGEN_CONFIG_OUT} && \ cp $${DOXIGEN_CONFIG_SRC} $${DOXIGEN_CONFIG_OUT} && \
echo OUTPUT_DIRECTORY=$$shell_path($${JSONAPI_GENERATOR_OUT}) >> $${DOXIGEN_CONFIG_OUT} && \ echo OUTPUT_DIRECTORY=$${JSONAPI_GENERATOR_OUT} >> $${DOXIGEN_CONFIG_OUT} && \
echo INPUT=$$shell_path($${DOXIGEN_INPUT_DIRECTORY}) >> $${DOXIGEN_CONFIG_OUT} && \ echo INPUT=$${DOXIGEN_INPUT_DIRECTORY} >> $${DOXIGEN_CONFIG_OUT} && \
doxygen $${DOXIGEN_CONFIG_OUT} && \ doxygen $${DOXIGEN_CONFIG_OUT} && \
$${JSONAPI_GENERATOR_EXE} $${JSONAPI_GENERATOR_SRC} $${JSONAPI_GENERATOR_OUT}; $${JSONAPI_GENERATOR_EXE} $${JSONAPI_GENERATOR_SRC} $${JSONAPI_GENERATOR_OUT};
QMAKE_EXTRA_TARGETS += jsonwrappersincl QMAKE_EXTRA_COMPILERS += genjsonapi
libretroshare.depends += jsonwrappersincl
PRE_TARGETDEPS *= $${WRAPPERS_INCL_FILE}
jsonwrappersreg.target = $${WRAPPERS_REG_FILE}
jsonwrappersreg.commands = touch $${WRAPPERS_REG_FILE}
jsonwrappersreg.depends = jsonwrappersincl
QMAKE_EXTRA_TARGETS += jsonwrappersreg
libretroshare.depends += jsonwrappersreg
PRE_TARGETDEPS *= $${WRAPPERS_REG_FILE}
# Force recalculation of libretroshare dependencies see https://stackoverflow.com/a/47884045 # Force recalculation of libretroshare dependencies see https://stackoverflow.com/a/47884045
QMAKE_EXTRA_TARGETS += libretroshare QMAKE_EXTRA_TARGETS += libretroshare

View file

@ -55,9 +55,10 @@ rs_jsonapi {
RESTBED_SRC_PATH=$$clean_path($${RS_SRC_PATH}/supportlibs/restbed) RESTBED_SRC_PATH=$$clean_path($${RS_SRC_PATH}/supportlibs/restbed)
RESTBED_BUILD_PATH=$$clean_path($${RS_BUILD_PATH}/supportlibs/restbed) RESTBED_BUILD_PATH=$$clean_path($${RS_BUILD_PATH}/supportlibs/restbed)
INCLUDEPATH *= $$clean_path($${RESTBED_BUILD_PATH}/include/) INCLUDEPATH *= $$clean_path($${RESTBED_BUILD_PATH}/include/)
QMAKE_LIBDIR *= $$clean_path($${RESTBED_BUILD_PATH}/library/) DEPENDPATH *= $$clean_path($${RESTBED_BUILD_PATH}/include/)
QMAKE_LIBDIR *= $$clean_path($${RESTBED_BUILD_PATH}/)
# Using sLibs would fail as librestbed.a is generated at compile-time # Using sLibs would fail as librestbed.a is generated at compile-time
LIBS *= -L$$clean_path($${RESTBED_BUILD_PATH}/library/) -lrestbed LIBS *= -L$$clean_path($${RESTBED_BUILD_PATH}/) -lrestbed
} else:sLibs *= restbed } else:sLibs *= restbed
win32-g++:dLibs *= wsock32 win32-g++:dLibs *= wsock32