* Create AppImage package using linuxdeployqt in Travis CI * Renamed appPath() to sharedDataPath() * Fixed include error in tutorial
This commit is contained in:
+3
-1
@@ -16,7 +16,9 @@ deploy:
|
|||||||
api_key:
|
api_key:
|
||||||
secure: b+fTcE73+5nkYufBNzGdxnwbx4a2BQr7iy28wdcr+8NrCxgq4mhmuZd+R3JzE7mt3ehEfUbUkXPLwefEcTFkqxXN6WdBjJYTa2JxAHkBuYiSG9X7voNCOU3SWaucY77FTdt5MlWKVOEzoKNT+tbBuLlWKNyPnFLE0JArc9w4DfvCbHos9ikTtiT1suE+OiIgt28SjD6MD4mIDmEHcKkZs1SfNxz8zhkJBp7y0iJOFPaZHZ9wE2DMox5h26ks13NMYP9mkYgZDTMppabuR8KtjGTJB7NSY3Uoj+6AYdGr5hfpzMIzLjfstagfBzLWpnuz29XwUhYR02MTRiJS6h8wXoO5twxWEKIeUT7xEjSZzdirynrErMDThz90vli0gaoZyIhU01sS9lOUozkdQJEg9Wosxs/586bShHOqhvhrfeCv2Z/7u9ftnpm7U+GaFxk3j1ZPHnSt6XcLz2wDcYIjKgsc8dvmMxYTJYLkXENU5XTkKXKfMHfweiZPWBUBjjMpcZWEyw8NQ/IsegMhXlptLsxr5N5A54KipnJK36b52vryIUzzQd4uM/pcWn5j2Il/KagM5U/kRhQDCxAozQ1Ub0HWqM+4WdCxzAg1FEUly7Y68FIVeeD19P7TAPRBGeljmr3vEdJHnr2z20dubWyhOlZ7NfTcd1drWthpN9ZvvT4=
|
secure: b+fTcE73+5nkYufBNzGdxnwbx4a2BQr7iy28wdcr+8NrCxgq4mhmuZd+R3JzE7mt3ehEfUbUkXPLwefEcTFkqxXN6WdBjJYTa2JxAHkBuYiSG9X7voNCOU3SWaucY77FTdt5MlWKVOEzoKNT+tbBuLlWKNyPnFLE0JArc9w4DfvCbHos9ikTtiT1suE+OiIgt28SjD6MD4mIDmEHcKkZs1SfNxz8zhkJBp7y0iJOFPaZHZ9wE2DMox5h26ks13NMYP9mkYgZDTMppabuR8KtjGTJB7NSY3Uoj+6AYdGr5hfpzMIzLjfstagfBzLWpnuz29XwUhYR02MTRiJS6h8wXoO5twxWEKIeUT7xEjSZzdirynrErMDThz90vli0gaoZyIhU01sS9lOUozkdQJEg9Wosxs/586bShHOqhvhrfeCv2Z/7u9ftnpm7U+GaFxk3j1ZPHnSt6XcLz2wDcYIjKgsc8dvmMxYTJYLkXENU5XTkKXKfMHfweiZPWBUBjjMpcZWEyw8NQ/IsegMhXlptLsxr5N5A54KipnJK36b52vryIUzzQd4uM/pcWn5j2Il/KagM5U/kRhQDCxAozQ1Ub0HWqM+4WdCxzAg1FEUly7Y68FIVeeD19P7TAPRBGeljmr3vEdJHnr2z20dubWyhOlZ7NfTcd1drWthpN9ZvvT4=
|
||||||
file_glob: true
|
file_glob: true
|
||||||
file: "$TRAVIS_BUILD_DIR/release/Sourcetrail*.tar.gz"
|
file:
|
||||||
|
- "$TRAVIS_BUILD_DIR/release/Sourcetrail*.tar.gz"
|
||||||
|
- "$TRAVIS_BUILD_DIR/release/Sourcetrail*.AppImage"
|
||||||
overwrite: true
|
overwrite: true
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
on:
|
on:
|
||||||
|
|||||||
+7
-2
@@ -516,6 +516,11 @@ configure_file(
|
|||||||
)
|
)
|
||||||
|
|
||||||
#configure the versioning file
|
#configure the versioning file
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_SOURCE_DIR}/cmake/version.txt.in
|
||||||
|
${CMAKE_BINARY_DIR}/version.txt
|
||||||
|
)
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
${CMAKE_SOURCE_DIR}/cmake/productVersion.h.in
|
${CMAKE_SOURCE_DIR}/cmake/productVersion.h.in
|
||||||
${CMAKE_BINARY_DIR}/src/lib_gui/productVersion.h
|
${CMAKE_BINARY_DIR}/src/lib_gui/productVersion.h
|
||||||
@@ -779,8 +784,8 @@ set_property(
|
|||||||
if (WIN32)
|
if (WIN32)
|
||||||
set_target_properties(${TEST_PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/bigobj")
|
set_target_properties(${TEST_PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/bigobj")
|
||||||
set_property(
|
set_property(
|
||||||
TARGET ${TEST_PROJECT_NAME}
|
TARGET ${TEST_PROJECT_NAME}
|
||||||
PROPERTY VS_DEBUGGER_WORKING_DIRECTORY
|
PROPERTY VS_DEBUGGER_WORKING_DIRECTORY
|
||||||
"${CMAKE_SOURCE_DIR}/bin/test")
|
"${CMAKE_SOURCE_DIR}/bin/test")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define GRAPH_TUTORIAL_6_H
|
#define GRAPH_TUTORIAL_6_H
|
||||||
|
|
||||||
|
|
||||||
#include "String.h"
|
#include "string.h"
|
||||||
|
|
||||||
class BoringClass
|
class BoringClass
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
@VERSION_STRING@
|
||||||
@@ -87,6 +87,15 @@ tar -xzf boost_${BOOST_VERSION_UNDERSCORE}.tar.gz && cd boost_${BOOST_VERSION_UN
|
|||||||
./b2 install cxxstd=14 --link=static --variant=release --threading=multi --runtime-link=static --cxxflags="-std=c++14 -fPIC" && \
|
./b2 install cxxstd=14 --link=static --variant=release --threading=multi --runtime-link=static --cxxflags="-std=c++14 -fPIC" && \
|
||||||
cd .. && rm boost_${BOOST_VERSION_UNDERSCORE}.tar.gz && rm boost_${BOOST_VERSION_UNDERSCORE} -r
|
cd .. && rm boost_${BOOST_VERSION_UNDERSCORE}.tar.gz && rm boost_${BOOST_VERSION_UNDERSCORE} -r
|
||||||
|
|
||||||
|
# linuxdeployqt
|
||||||
|
RUN wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage && \
|
||||||
|
chmod a+x linuxdeployqt-6-x86_64.AppImage && \
|
||||||
|
./linuxdeployqt-6-x86_64.AppImage --appimage-extract && \
|
||||||
|
cp -r squashfs-root/usr/ /opt/linuxdeployqt && \
|
||||||
|
chmod -R 755 /opt/linuxdeployqt && \
|
||||||
|
rm linuxdeployqt-6-x86_64.AppImage && rm -rf squashfs-root
|
||||||
|
ENV PATH=/opt/linuxdeployqt/bin:${PATH}
|
||||||
|
|
||||||
#add user
|
#add user
|
||||||
RUN useradd -u 1000 builder
|
RUN useradd -u 1000 builder
|
||||||
WORKDIR /home/builder
|
WORKDIR /home/builder
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ WORKDIR /opt
|
|||||||
RUN rpm --rebuilddb; yum install -y yum-plugin-ovl ca-certificates;
|
RUN rpm --rebuilddb; yum install -y yum-plugin-ovl ca-certificates;
|
||||||
|
|
||||||
RUN yum -y install centos-release-scl epel-release && \
|
RUN yum -y install centos-release-scl epel-release && \
|
||||||
yum -y install make wget devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils \
|
yum -y install make wget file devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils \
|
||||||
wget tar bzip2 git libtool which fuse fuse-devel libpng-devel automake \
|
wget tar bzip2 git libtool which fuse fuse-devel libpng-devel automake \
|
||||||
glibc-headers libstdc++-devel gcc-c++ freetype-devel fontconfig-devel\
|
glibc-headers libstdc++-devel gcc-c++ freetype-devel fontconfig-devel\
|
||||||
libxml2-devel libstdc++-devel libXrender libXrender-devel patch xcb-util-keysyms xcb-util-keysyms-devel \
|
libxml2-devel libstdc++-devel libXrender libXrender-devel patch xcb-util-keysyms xcb-util-keysyms-devel \
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
FROM coatisoftware/centos7_64_qt_llvm:qt5126-llvm900
|
FROM coatisoftware/centos7_64_qt_llvm:qt5126-llvm900
|
||||||
|
|
||||||
|
# TODO: remove after full image rebuilt ------------------------------------
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN yum -y install file
|
||||||
|
|
||||||
|
RUN wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage && \
|
||||||
|
chmod a+x linuxdeployqt-6-x86_64.AppImage && \
|
||||||
|
./linuxdeployqt-6-x86_64.AppImage --appimage-extract && \
|
||||||
|
cp -r squashfs-root/usr/ /opt/linuxdeployqt && \
|
||||||
|
chmod -R 755 /opt/linuxdeployqt && \
|
||||||
|
rm linuxdeployqt-6-x86_64.AppImage && rm -rf squashfs-root
|
||||||
|
ENV PATH=/opt/linuxdeployqt/bin:${PATH}
|
||||||
|
|
||||||
|
USER builder
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|||||||
@@ -14,5 +14,8 @@ git checkout $1
|
|||||||
|
|
||||||
./script/build.sh release test
|
./script/build.sh release test
|
||||||
|
|
||||||
|
./setup/Linux/createAppImage.sh
|
||||||
|
|
||||||
mkdir release
|
mkdir release
|
||||||
cp ./Sourcetrail*.tar.gz ./release/
|
cp ./Sourcetrail*.tar.gz ./release/
|
||||||
|
cp ./Sourcetrail*.AppImage ./release/
|
||||||
|
|||||||
Executable
+72
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BIN_PATH=build/Release/app/Sourcetrail
|
||||||
|
PROJECTS_PATH=bin/app/user/projects
|
||||||
|
|
||||||
|
./$BIN_PATH index --full $PROJECTS_PATH/tictactoe_cpp/tictactoe_cpp.srctrlprj
|
||||||
|
./$BIN_PATH index --full $PROJECTS_PATH/tictactoe_py/tictactoe_py.srctrlprj
|
||||||
|
./$BIN_PATH index --full $PROJECTS_PATH/tutorial/tutorial.srctrlprj
|
||||||
|
./$BIN_PATH index --full $PROJECTS_PATH/javaparser/javaparser.srctrlprj
|
||||||
|
|
||||||
|
rm -rf AppDir
|
||||||
|
|
||||||
|
mkdir AppDir
|
||||||
|
cd AppDir
|
||||||
|
|
||||||
|
mkdir usr
|
||||||
|
cd usr
|
||||||
|
|
||||||
|
mkdir bin
|
||||||
|
mkdir lib
|
||||||
|
mkdir share
|
||||||
|
|
||||||
|
cd bin
|
||||||
|
cp ../../../build/Release/app/Sourcetrail sourcetrail
|
||||||
|
cp ../../../build/Release/app/sourcetrail_indexer .
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd share
|
||||||
|
|
||||||
|
mkdir applications
|
||||||
|
cd applications
|
||||||
|
cp ../../../../setup/Linux/sourcetrail.desktop .
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cp -r ../../../build/Release/share/icons/ .
|
||||||
|
|
||||||
|
mkdir mime
|
||||||
|
cd mime
|
||||||
|
mkdir packages
|
||||||
|
cd packages
|
||||||
|
cp ../../../../../setup/Linux/sourcetrail-mime.xml .
|
||||||
|
cd ../..
|
||||||
|
|
||||||
|
mkdir data
|
||||||
|
cd data
|
||||||
|
cp -R ../../../../bin/app/data/color_schemes .
|
||||||
|
cp -R ../../../../bin/app/data/syntax_highlighting_rules .
|
||||||
|
cp -R ../../../../bin/app/data/fonts .
|
||||||
|
cp -R ../../../../bin/app/data/gui .
|
||||||
|
cp -R ../../../../bin/app/data/java .
|
||||||
|
cp -R ../../../../bin/app/data/python .
|
||||||
|
cp -R ../../../../bin/app/data/fallback .
|
||||||
|
cp -R ../../../../bin/app/user/projects fallback/
|
||||||
|
cp -R ../../../../bin/app/data/license .
|
||||||
|
cp -R ../../../../bin/app/data/cxx .
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd ../../..
|
||||||
|
|
||||||
|
# find AppDir | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
|
||||||
|
|
||||||
|
export VERSION=$(cat build/Release/version.txt)
|
||||||
|
|
||||||
|
linuxdeployqt AppDir/usr/bin/sourcetrail_indexer -qmake=$Qt5_DIR/bin/qmake -ignore-glob=*python*
|
||||||
|
rm -f AppDir/AppRun
|
||||||
|
linuxdeployqt AppDir/usr/share/applications/sourcetrail.desktop -qmake=$Qt5_DIR/bin/qmake -ignore-glob=*python* -appimage
|
||||||
|
|
||||||
|
rename x86_64 Linux_64bit *.AppImage
|
||||||
|
rename - _ *.AppImage
|
||||||
|
rename - _ *.AppImage
|
||||||
|
rename . _ *.AppImage
|
||||||
|
rename . _ *.AppImage
|
||||||
@@ -8,5 +8,5 @@ Icon=sourcetrail
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
MimeType=application/x-sourcetrail;
|
MimeType=application/x-sourcetrail;
|
||||||
Categories=Development;IDE;Utilities;
|
Categories=Development;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
|||||||
+2
-1
@@ -97,7 +97,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable : 4996)
|
#pragma warning(disable : 4996)
|
||||||
if (utility::getOsType() == OS_LINUX && std::getenv("SOURCETRAIL_VIA_SCRIPT") == nullptr)
|
if (utility::getOsType() == OS_LINUX && std::getenv("SOURCETRAIL_VIA_SCRIPT") == nullptr &&
|
||||||
|
!FilePath(QCoreApplication::applicationDirPath().toStdWString() + L"/../share").exists())
|
||||||
{
|
{
|
||||||
std::cout << "ERROR: Please run Sourcetrail via the Sourcetrail.sh script!" << std::endl;
|
std::cout << "ERROR: Please run Sourcetrail via the Sourcetrail.sh script!" << std::endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ int main(int argc, char *argv[])
|
|||||||
logFilePath = argv[5];
|
logFilePath = argv[5];
|
||||||
}
|
}
|
||||||
|
|
||||||
AppPath::setAppPath(FilePath(appPath));
|
AppPath::setSharedDataPath(FilePath(appPath));
|
||||||
UserPaths::setUserDataPath(FilePath(userDataPath));
|
UserPaths::setUserDataPath(FilePath(userDataPath));
|
||||||
|
|
||||||
if (!logFilePath.empty())
|
if (!logFilePath.empty())
|
||||||
@@ -88,7 +88,7 @@ int main(int argc, char *argv[])
|
|||||||
appSettings->load(FilePath(UserPaths::getAppSettingsPath()));
|
appSettings->load(FilePath(UserPaths::getAppSettingsPath()));
|
||||||
LogManager::getInstance()->setLoggingEnabled(appSettings->getLoggingEnabled());
|
LogManager::getInstance()->setLoggingEnabled(appSettings->getLoggingEnabled());
|
||||||
|
|
||||||
LOG_INFO(L"appPath: " + AppPath::getAppPath().wstr());
|
LOG_INFO(L"sharedDataPath: " + AppPath::getSharedDataPath().wstr());
|
||||||
LOG_INFO(L"userDataPath: " + UserPaths::getUserDataPath().wstr());
|
LOG_INFO(L"userDataPath: " + UserPaths::getUserDataPath().wstr());
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,43 @@
|
|||||||
#include "AppPath.h"
|
#include "AppPath.h"
|
||||||
|
|
||||||
FilePath AppPath::m_appPath(L"");
|
FilePath AppPath::m_sharedDataPath(L"");
|
||||||
|
FilePath AppPath::m_cxxIndexerPath(L"");
|
||||||
|
|
||||||
FilePath AppPath::getAppPath()
|
FilePath AppPath::getSharedDataPath()
|
||||||
{
|
{
|
||||||
return m_appPath;
|
return m_sharedDataPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AppPath::setAppPath(const FilePath& path)
|
bool AppPath::setSharedDataPath(const FilePath& path)
|
||||||
{
|
{
|
||||||
if (!path.empty())
|
if (!path.empty())
|
||||||
{
|
{
|
||||||
m_appPath = path;
|
m_sharedDataPath = path;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
FilePath AppPath::getCxxIndexerPath()
|
||||||
|
{
|
||||||
|
#if _WIN32
|
||||||
|
const std::wstring cxxIndexerName(L"sourcetrail_indexer.exe");
|
||||||
|
#else
|
||||||
|
const std::wstring cxxIndexerName(L"sourcetrail_indexer");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!m_cxxIndexerPath.empty())
|
||||||
|
{
|
||||||
|
return m_cxxIndexerPath.getConcatenated(cxxIndexerName);
|
||||||
|
}
|
||||||
|
return m_sharedDataPath.getConcatenated(cxxIndexerName);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AppPath::setCxxIndexerPath(const FilePath& path)
|
||||||
|
{
|
||||||
|
if (!path.empty())
|
||||||
|
{
|
||||||
|
m_cxxIndexerPath = path;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -6,11 +6,15 @@
|
|||||||
class AppPath
|
class AppPath
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static FilePath getAppPath();
|
static FilePath getSharedDataPath();
|
||||||
static bool setAppPath(const FilePath& path);
|
static bool setSharedDataPath(const FilePath& path);
|
||||||
|
|
||||||
|
static FilePath getCxxIndexerPath();
|
||||||
|
static bool setCxxIndexerPath(const FilePath& path);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static FilePath m_appPath;
|
static FilePath m_sharedDataPath;
|
||||||
|
static FilePath m_cxxIndexerPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // APP_PATH_H
|
#endif // APP_PATH_H
|
||||||
|
|||||||
@@ -4,45 +4,45 @@
|
|||||||
|
|
||||||
FilePath ResourcePaths::getColorSchemesPath()
|
FilePath ResourcePaths::getColorSchemesPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/color_schemes/");
|
return AppPath::getSharedDataPath().concatenate(L"data/color_schemes/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getSyntaxHighlightingRulesPath()
|
FilePath ResourcePaths::getSyntaxHighlightingRulesPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/syntax_highlighting_rules/");
|
return AppPath::getSharedDataPath().concatenate(L"data/syntax_highlighting_rules/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getFallbackPath()
|
FilePath ResourcePaths::getFallbackPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/fallback/");
|
return AppPath::getSharedDataPath().concatenate(L"data/fallback/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getFontsPath()
|
FilePath ResourcePaths::getFontsPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/fonts/");
|
return AppPath::getSharedDataPath().concatenate(L"data/fonts/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getGuiPath()
|
FilePath ResourcePaths::getGuiPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/gui/");
|
return AppPath::getSharedDataPath().concatenate(L"data/gui/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getLicensePath()
|
FilePath ResourcePaths::getLicensePath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/license/");
|
return AppPath::getSharedDataPath().concatenate(L"data/license/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getJavaPath()
|
FilePath ResourcePaths::getJavaPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/java/");
|
return AppPath::getSharedDataPath().concatenate(L"data/java/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getPythonPath()
|
FilePath ResourcePaths::getPythonPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/python/");
|
return AppPath::getSharedDataPath().concatenate(L"data/python/");
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath ResourcePaths::getCxxCompilerHeaderPath()
|
FilePath ResourcePaths::getCxxCompilerHeaderPath()
|
||||||
{
|
{
|
||||||
return AppPath::getAppPath().concatenate(L"data/cxx/include/").getCanonical();
|
return AppPath::getSharedDataPath().concatenate(L"data/cxx/include/").getCanonical();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,13 +13,6 @@
|
|||||||
#include "UserPaths.h"
|
#include "UserPaths.h"
|
||||||
#include "utilityApp.h"
|
#include "utilityApp.h"
|
||||||
|
|
||||||
|
|
||||||
#if _WIN32
|
|
||||||
const std::wstring TaskBuildIndex::s_processName(L"sourcetrail_indexer.exe");
|
|
||||||
#else
|
|
||||||
const std::wstring TaskBuildIndex::s_processName(L"sourcetrail_indexer");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TaskBuildIndex::TaskBuildIndex(
|
TaskBuildIndex::TaskBuildIndex(
|
||||||
size_t processCount,
|
size_t processCount,
|
||||||
std::shared_ptr<StorageProvider> storageProvider,
|
std::shared_ptr<StorageProvider> storageProvider,
|
||||||
@@ -185,7 +178,7 @@ void TaskBuildIndex::handleMessage(MessageIndexingInterrupted* message)
|
|||||||
|
|
||||||
void TaskBuildIndex::runIndexerProcess(int processId, const std::wstring& logFilePath)
|
void TaskBuildIndex::runIndexerProcess(int processId, const std::wstring& logFilePath)
|
||||||
{
|
{
|
||||||
const FilePath indexerProcessPath = AppPath::getAppPath().concatenate(s_processName);
|
const FilePath indexerProcessPath = AppPath::getCxxIndexerPath();
|
||||||
if (!indexerProcessPath.exists())
|
if (!indexerProcessPath.exists())
|
||||||
{
|
{
|
||||||
m_interrupted = true;
|
m_interrupted = true;
|
||||||
@@ -199,7 +192,7 @@ void TaskBuildIndex::runIndexerProcess(int processId, const std::wstring& logFil
|
|||||||
std::vector<std::wstring> commandArguments;
|
std::vector<std::wstring> commandArguments;
|
||||||
commandArguments.push_back(std::to_wstring(processId));
|
commandArguments.push_back(std::to_wstring(processId));
|
||||||
commandArguments.push_back(utility::decodeFromUtf8(m_appUUID));
|
commandArguments.push_back(utility::decodeFromUtf8(m_appUUID));
|
||||||
commandArguments.push_back(L"\"" + AppPath::getAppPath().getAbsolute().wstr() + L"\"");
|
commandArguments.push_back(L"\"" + AppPath::getSharedDataPath().getAbsolute().wstr() + L"\"");
|
||||||
commandArguments.push_back(L"\"" + UserPaths::getUserDataPath().getAbsolute().wstr() + L"\"");
|
commandArguments.push_back(L"\"" + UserPaths::getUserDataPath().getAbsolute().wstr() + L"\"");
|
||||||
|
|
||||||
if (!logFilePath.empty())
|
if (!logFilePath.empty())
|
||||||
|
|||||||
@@ -44,8 +44,15 @@ void setupPlatform(int argc, char* argv[])
|
|||||||
|
|
||||||
void setupApp(int argc, char* argv[])
|
void setupApp(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
AppPath::setAppPath(
|
FilePath appPath = FilePath(QCoreApplication::applicationDirPath().toStdWString() + L"/").getAbsolute();
|
||||||
FilePath(QCoreApplication::applicationDirPath().toStdWString() + L"/").getAbsolute());
|
AppPath::setSharedDataPath(appPath);
|
||||||
|
AppPath::setCxxIndexerPath(appPath);
|
||||||
|
|
||||||
|
// Check if bundled as Linux AppImage
|
||||||
|
if (appPath.getConcatenated(L"/../share/data").exists())
|
||||||
|
{
|
||||||
|
AppPath::setSharedDataPath(appPath.getConcatenated(L"/../share").getAbsolute());
|
||||||
|
}
|
||||||
|
|
||||||
std::string userdir(std::getenv("HOME"));
|
std::string userdir(std::getenv("HOME"));
|
||||||
userdir.append("/.config/sourcetrail/");
|
userdir.append("/.config/sourcetrail/");
|
||||||
@@ -60,7 +67,7 @@ void setupApp(int argc, char* argv[])
|
|||||||
utility::copyNewFilesFromDirectory(
|
utility::copyNewFilesFromDirectory(
|
||||||
QString::fromStdWString(ResourcePaths::getFallbackPath().wstr()), userDataPath);
|
QString::fromStdWString(ResourcePaths::getFallbackPath().wstr()), userDataPath);
|
||||||
utility::copyNewFilesFromDirectory(
|
utility::copyNewFilesFromDirectory(
|
||||||
QString::fromStdWString(AppPath::getAppPath().concatenate(L"user/").wstr()), userDataPath);
|
QString::fromStdWString(AppPath::getSharedDataPath().concatenate(L"user/").wstr()), userDataPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // INCLUDES_DEFAULT_H
|
#endif // INCLUDES_DEFAULT_H
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ void setupPlatform(int argc, char* argv[])
|
|||||||
void setupApp(int argc, char* argv[])
|
void setupApp(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
const FilePath path(QDir::currentPath().toStdWString() + L"/");
|
const FilePath path(QDir::currentPath().toStdWString() + L"/");
|
||||||
AppPath::setAppPath(path.getAbsolute());
|
AppPath::setSharedDataPath(path.getAbsolute());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // INCLUDES_MAC_H
|
#endif // INCLUDES_MAC_H
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ void setupApp(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
appPath = appPath.substr(0, pos + 1);
|
appPath = appPath.substr(0, pos + 1);
|
||||||
}
|
}
|
||||||
AppPath::setAppPath(FilePath(appPath));
|
AppPath::setSharedDataPath(FilePath(appPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
FilePath userDataPath = AppPath::getAppPath().concatenate(L"user/");
|
FilePath userDataPath = AppPath::getSharedDataPath().concatenate(L"user/");
|
||||||
if (!userDataPath.exists())
|
if (!userDataPath.exists())
|
||||||
{
|
{
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
@@ -65,7 +65,7 @@ void setupApp(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
userDataPath = AppPath::getAppPath().concatenate(L"user_fallback/");
|
userDataPath = AppPath::getSharedDataPath().concatenate(L"user_fallback/");
|
||||||
LOG_ERROR(
|
LOG_ERROR(
|
||||||
L"The \"%LOCALAPPDATA%\" path could not be found. Falling back to \"" +
|
L"The \"%LOCALAPPDATA%\" path could not be found. Falling back to \"" +
|
||||||
userDataPath.wstr() + L"\" to store settings data.");
|
userDataPath.wstr() + L"\" to store settings data.");
|
||||||
|
|||||||
@@ -505,8 +505,8 @@ TEST_CASE("sourcegroup java gradle generates expected output")
|
|||||||
|
|
||||||
std::shared_ptr<ApplicationSettings> applicationSettings = ApplicationSettings::getInstance();
|
std::shared_ptr<ApplicationSettings> applicationSettings = ApplicationSettings::getInstance();
|
||||||
|
|
||||||
const FilePath storedAppPath = AppPath::getAppPath();
|
const FilePath storedAppPath = AppPath::getSharedDataPath();
|
||||||
AppPath::setAppPath(storedAppPath.getConcatenated(L"../app").makeAbsolute());
|
AppPath::setSharedDataPath(storedAppPath.getConcatenated(L"../app").makeAbsolute());
|
||||||
|
|
||||||
std::vector<FilePath> storedJreSystemLibraryPaths =
|
std::vector<FilePath> storedJreSystemLibraryPaths =
|
||||||
applicationSettings->getJreSystemLibraryPaths();
|
applicationSettings->getJreSystemLibraryPaths();
|
||||||
@@ -516,7 +516,7 @@ TEST_CASE("sourcegroup java gradle generates expected output")
|
|||||||
projectName, std::make_shared<SourceGroupJavaGradle>(sourceGroupSettings));
|
projectName, std::make_shared<SourceGroupJavaGradle>(sourceGroupSettings));
|
||||||
|
|
||||||
applicationSettings->setJreSystemLibraryPaths(storedJreSystemLibraryPaths);
|
applicationSettings->setJreSystemLibraryPaths(storedJreSystemLibraryPaths);
|
||||||
AppPath::setAppPath(storedAppPath);
|
AppPath::setSharedDataPath(storedAppPath);
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user