logic: Added "Empty Python" Sourcegroup to project setup

The respective release of the SourcetrailPythonIndexer project is automatically downloaded from GitHub when the setup script is executed.
This commit is contained in:
mlangkabel
2019-04-02 15:54:17 +02:00
parent 5d672fafc4
commit 045a3a4e50
34 changed files with 450 additions and 29 deletions
+2 -1
View File
@@ -2,8 +2,9 @@
/distr/ /distr/
/deps/ /deps/
/bin/app/data/projects/ignored/
/bin/app/data/java/lib/ /bin/app/data/java/lib/
/bin/app/data/projects/ignored/
/bin/app/data/python/
/bin/app/user/log/ /bin/app/user/log/
/bin/app/user/ApplicationSettings.xml /bin/app/user/ApplicationSettings.xml
/bin/app/user/window_settings.ini /bin/app/user/window_settings.ini
+46 -2
View File
@@ -38,6 +38,7 @@ set(LIB_UTILITY_PROJECT_NAME "${PROJECT_NAME}_lib_utility")
set(LIB_GUI_PROJECT_NAME "${PROJECT_NAME}_lib_gui") set(LIB_GUI_PROJECT_NAME "${PROJECT_NAME}_lib_gui")
set(LIB_CXX_PROJECT_NAME "${PROJECT_NAME}_lib_cxx") set(LIB_CXX_PROJECT_NAME "${PROJECT_NAME}_lib_cxx")
set(LIB_JAVA_PROJECT_NAME "${PROJECT_NAME}_lib_java") set(LIB_JAVA_PROJECT_NAME "${PROJECT_NAME}_lib_java")
set(LIB_PYTHON_PROJECT_NAME "${PROJECT_NAME}_lib_python")
set(LIB_PROJECT_NAME "${PROJECT_NAME}_lib") set(LIB_PROJECT_NAME "${PROJECT_NAME}_lib")
set(LICENSE_GENERATOR_PROJECT_NAME "${PROJECT_NAME}_license_generator") set(LICENSE_GENERATOR_PROJECT_NAME "${PROJECT_NAME}_license_generator")
set(TEST_PROJECT_NAME "${PROJECT_NAME}_test") set(TEST_PROJECT_NAME "${PROJECT_NAME}_test")
@@ -241,6 +242,7 @@ add_subdirectory(src/lib)
add_subdirectory(src/lib_cxx) add_subdirectory(src/lib_cxx)
add_subdirectory(src/lib_gui) add_subdirectory(src/lib_gui)
add_subdirectory(src/lib_java) add_subdirectory(src/lib_java)
add_subdirectory(src/lib_python)
add_subdirectory(src/lib_license) add_subdirectory(src/lib_license)
add_subdirectory(src/lib_utility) add_subdirectory(src/lib_utility)
add_subdirectory(src/license_generator) add_subdirectory(src/license_generator)
@@ -406,6 +408,30 @@ add_custom_command(
) )
# Lib Python ---------------------------------------------------------------------
add_library(${LIB_PYTHON_PROJECT_NAME} ${LIB_PYTHON_FILES})
create_source_groups(${LIB_PYTHON_FILES})
set_property(
TARGET ${LIB_PYTHON_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${LIB_PYTHON_INCLUDE_PATHS}"
"${LIB_UTILITY_INCLUDE_PATHS}"
"${LIB_INCLUDE_PATHS}"
# "${LIB_GUI_INCLUDE_PATHS}"
)
#target_include_directories(${LIB_PYTHON_PROJECT_NAME} SYSTEM
# PUBLIC ${Boost_INCLUDE_DIRS}
#)
#link_directories(${Boost_LIBRARY_DIRS})
target_link_libraries(${LIB_PYTHON_PROJECT_NAME} ${LIB_UTILITY_PROJECT_NAME} ${LIB_PROJECT_NAME})
# Lib Gui ---------------------------------------------------------------------- # Lib Gui ----------------------------------------------------------------------
# Find includes in corresponding build directories # Find includes in corresponding build directories
@@ -449,6 +475,7 @@ set_property(
"${LIB_INCLUDE_PATHS}" "${LIB_INCLUDE_PATHS}"
"${LIB_CXX_INCLUDE_PATHS}" "${LIB_CXX_INCLUDE_PATHS}"
"${LIB_JAVA_INCLUDE_PATHS}" "${LIB_JAVA_INCLUDE_PATHS}"
"${LIB_PYTHON_INCLUDE_PATHS}" # required for QtProjectWizzardContentPathsSource::getFilePaths()
"${LIB_LICENSE_INCLUDE_PATHS}" "${LIB_LICENSE_INCLUDE_PATHS}"
"${CMAKE_BINARY_DIR}/src/lib_gui" "${CMAKE_BINARY_DIR}/src/lib_gui"
"${CMAKE_BINARY_DIR}/src/lib_license" "${CMAKE_BINARY_DIR}/src/lib_license"
@@ -510,7 +537,14 @@ endif ()
create_source_groups(${INDEXER_FILES}) create_source_groups(${INDEXER_FILES})
target_link_libraries(${APP_INDEXER_NAME} ${LIB_GUI_PROJECT_NAME} ${LIB_CXX_PROJECT_NAME} ${LIB_JAVA_PROJECT_NAME} ${LIB_PROJECT_NAME}) target_link_libraries(
${APP_INDEXER_NAME}
${LIB_PROJECT_NAME}
${LIB_GUI_PROJECT_NAME}
${LIB_CXX_PROJECT_NAME}
${LIB_JAVA_PROJECT_NAME}
${LIB_PYTHON_PROJECT_NAME}
)
if (APPLE) if (APPLE)
find_library(CORE_FOUNDATION CoreFoundation) find_library(CORE_FOUNDATION CoreFoundation)
@@ -527,6 +561,7 @@ set_property(
"${LIB_LICENSE_INCLUDE_PATHS}" "${LIB_LICENSE_INCLUDE_PATHS}"
"${LIB_CXX_INCLUDE_PATHS}" "${LIB_CXX_INCLUDE_PATHS}"
"${LIB_JAVA_INCLUDE_PATHS}" "${LIB_JAVA_INCLUDE_PATHS}"
"${LIB_PYTHON_INCLUDE_PATHS}"
"${CMAKE_BINARY_DIR}/src/lib_gui" "${CMAKE_BINARY_DIR}/src/lib_gui"
"${CMAKE_BINARY_DIR}/src/lib_license" "${CMAKE_BINARY_DIR}/src/lib_license"
) )
@@ -571,7 +606,15 @@ endif ()
create_source_groups(${APP_FILES}) create_source_groups(${APP_FILES})
target_link_libraries(${APP_PROJECT_NAME} ${LIB_GUI_PROJECT_NAME} ${LIB_CXX_PROJECT_NAME} ${LIB_JAVA_PROJECT_NAME} ${LIB_PROJECT_NAME} ${LIB_LICENSE_PROJECT_NAME}) target_link_libraries(
${APP_PROJECT_NAME}
${LIB_PROJECT_NAME}
${LIB_GUI_PROJECT_NAME}
${LIB_LICENSE_PROJECT_NAME}
${LIB_CXX_PROJECT_NAME}
${LIB_JAVA_PROJECT_NAME}
${LIB_PYTHON_PROJECT_NAME}
)
set_property( set_property(
TARGET ${APP_PROJECT_NAME} TARGET ${APP_PROJECT_NAME}
@@ -583,6 +626,7 @@ set_property(
"${LIB_LICENSE_INCLUDE_PATHS}" "${LIB_LICENSE_INCLUDE_PATHS}"
"${LIB_CXX_INCLUDE_PATHS}" "${LIB_CXX_INCLUDE_PATHS}"
"${LIB_JAVA_INCLUDE_PATHS}" "${LIB_JAVA_INCLUDE_PATHS}"
"${LIB_PYTHON_INCLUDE_PATHS}"
"${CMAKE_BINARY_DIR}/src/lib_gui" "${CMAKE_BINARY_DIR}/src/lib_gui"
"${CMAKE_BINARY_DIR}/src/lib_license" "${CMAKE_BINARY_DIR}/src/lib_license"
) )
@@ -23,7 +23,7 @@ yum -y install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils \
gperftools gperf libicu-devel boost-devel \ gperftools gperf libicu-devel boost-devel \
libxslt-devel docbook-style-xsl.noarch python27 \ libxslt-devel docbook-style-xsl.noarch python27 \
xz mesa-libEGL-devel mesa-libGL-devel glib-devel \ xz mesa-libEGL-devel mesa-libGL-devel glib-devel \
java-1.8.0-openjdk-devel ccache re2c ImageMagick vim lftp && \ java-1.8.0-openjdk-devel ccache re2c ImageMagick vim lftp unzip && \
yum clean all yum clean all
# CMake and Maven # CMake and Maven
@@ -15,7 +15,7 @@ yum -y install wget devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils
gperftools.x86_64 gperf.x86_64 libicu-devel.x86_64 boost-devel.x86_64 \ gperftools.x86_64 gperf.x86_64 libicu-devel.x86_64 boost-devel.x86_64 \
libxslt-devel.x86_64 python27.x86_64 \ libxslt-devel.x86_64 python27.x86_64 \
xz mesa-libEGL-devel mesa-libGL-devel glib-devel git19 \ xz mesa-libEGL-devel mesa-libGL-devel glib-devel git19 \
java-1.8.0-openjdk-devel re2c ccache ImageMagick vim lftp && \ java-1.8.0-openjdk-devel re2c ccache ImageMagick vim lftp unzip && \
yum clean all yum clean all
# CMake # CMake
+5 -4
View File
@@ -54,23 +54,22 @@ DATA_COLOR_SCHEMES_DIR=$ROOT_DIR/bin/app/data/color_schemes
DATA_CXX_DIR=$ROOT_DIR/bin/app/data/cxx DATA_CXX_DIR=$ROOT_DIR/bin/app/data/cxx
DATA_FALLBACK_DIR=$ROOT_DIR/bin/app/data/fallback DATA_FALLBACK_DIR=$ROOT_DIR/bin/app/data/fallback
DATA_FONTS_DIR=$ROOT_DIR/bin/app/data/fonts DATA_FONTS_DIR=$ROOT_DIR/bin/app/data/fonts
DATA_GUI_DIR=$ROOT_DIR/bin/app/data/gui DATA_GUI_DIR=$ROOT_DIR/bin/app/data/gui
DATA_JAVA_DIR=$ROOT_DIR/bin/app/data/java DATA_JAVA_DIR=$ROOT_DIR/bin/app/data/java
DATA_PYTHON_DIR=$ROOT_DIR/bin/app/data/python
DATA_SYNTAX_HIGHLIGHTING_RULES_DIR=$ROOT_DIR/bin/app/data/syntax_highlighting_rules DATA_SYNTAX_HIGHLIGHTING_RULES_DIR=$ROOT_DIR/bin/app/data/syntax_highlighting_rules
heat.exe dir $DATA_COLOR_SCHEMES_DIR -cg DataColorSchemesComponentGroup -var var.DataColorSchemesSourceDir -out build/dataColorSchemes.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_COLOR_SCHEMES_DIR -cg DataColorSchemesComponentGroup -var var.DataColorSchemesSourceDir -out build/dataColorSchemes.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_CXX_DIR -cg DataCxxComponentGroup -var var.DataCxxSourceDir -out build/dataCxx.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_CXX_DIR -cg DataCxxComponentGroup -var var.DataCxxSourceDir -out build/dataCxx.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_FALLBACK_DIR -cg DataFallbackComponentGroup -var var.DataFallbackSourceDir -out build/dataFallback.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_FALLBACK_DIR -cg DataFallbackComponentGroup -var var.DataFallbackSourceDir -out build/dataFallback.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_FONTS_DIR -cg DataFontsComponentGroup -var var.DataFontsSourceDir -out build/dataFonts.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_FONTS_DIR -cg DataFontsComponentGroup -var var.DataFontsSourceDir -out build/dataFonts.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_GUI_DIR -cg DataGuiComponentGroup -var var.DataGuiSourceDir -out build/dataGui.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_GUI_DIR -cg DataGuiComponentGroup -var var.DataGuiSourceDir -out build/dataGui.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_JAVA_DIR -cg DataJavaComponentGroup -var var.DataJavaSourceDir -out build/dataJava.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_JAVA_DIR -cg DataJavaComponentGroup -var var.DataJavaSourceDir -out build/dataJava.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_PYTHON_DIR -cg DataPythonComponentGroup -var var.DataPythonSourceDir -out build/dataPython.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
heat.exe dir $DATA_SYNTAX_HIGHLIGHTING_RULES_DIR -cg DataSyntaxHighlightingRulesComponentGroup -var var.DataSyntaxHighlightingRulesSourceDir -out build/dataSyntaxHighlightingRules.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt heat.exe dir $DATA_SYNTAX_HIGHLIGHTING_RULES_DIR -cg DataSyntaxHighlightingRulesComponentGroup -var var.DataSyntaxHighlightingRulesSourceDir -out build/dataSyntaxHighlightingRules.wxs -gg -sfrag -g1 -dr LieutenantCommanderData -t $SCRIPT_DIR/HeatTransform.xslt
candle.exe -dProductVersion="$VERSION_STRING" -dProductGuid="$PRODUCT_GUID" -dWin64="$WIN_64" -arch $X_ARCH -out build/ \ candle.exe -dProductVersion="$VERSION_STRING" -dProductGuid="$PRODUCT_GUID" -dWin64="$WIN_64" -arch $X_ARCH -out build/ \
-dSampleJavaparserSourceDir="$SAMPLE_JAVAPARSER_DIR" build/sampleJavaparser.wxs \ -dSampleJavaparserSourceDir="$SAMPLE_JAVAPARSER_DIR" build/sampleJavaparser.wxs \
-dSampleTictactoeSourceDir="$SAMPLE_TICTACTOE_DIR" build/sampleTictactoe.wxs \ -dSampleTictactoeSourceDir="$SAMPLE_TICTACTOE_DIR" build/sampleTictactoe.wxs \
@@ -81,6 +80,7 @@ candle.exe -dProductVersion="$VERSION_STRING" -dProductGuid="$PRODUCT_GUID" -dWi
-dDataFontsSourceDir="$DATA_FONTS_DIR" build/dataFonts.wxs \ -dDataFontsSourceDir="$DATA_FONTS_DIR" build/dataFonts.wxs \
-dDataGuiSourceDir="$DATA_GUI_DIR" build/dataGui.wxs \ -dDataGuiSourceDir="$DATA_GUI_DIR" build/dataGui.wxs \
-dDataJavaSourceDir="$DATA_JAVA_DIR" build/dataJava.wxs \ -dDataJavaSourceDir="$DATA_JAVA_DIR" build/dataJava.wxs \
-dDataPythonSourceDir="$DATA_PYTHON_DIR" build/dataPython.wxs \
-dDataSyntaxHighlightingRulesSourceDir="$DATA_SYNTAX_HIGHLIGHTING_RULES_DIR" build/dataSyntaxHighlightingRules.wxs \ -dDataSyntaxHighlightingRulesSourceDir="$DATA_SYNTAX_HIGHLIGHTING_RULES_DIR" build/dataSyntaxHighlightingRules.wxs \
sourcetrail.wxs customActions.wxs dialogShortcuts.wxs installDir.wxs appDataDir.wxs \ sourcetrail.wxs customActions.wxs dialogShortcuts.wxs installDir.wxs appDataDir.wxs \
> build/compileLog.txt > build/compileLog.txt
@@ -96,6 +96,7 @@ light.exe -ext WixUIExtension \
build/dataFonts.wixobj \ build/dataFonts.wixobj \
build/dataGui.wixobj \ build/dataGui.wixobj \
build/dataJava.wixobj \ build/dataJava.wixobj \
build/dataPython.wixobj \
build/dataSyntaxHighlightingRules.wixobj \ build/dataSyntaxHighlightingRules.wixobj \
build/sourcetrail.wixobj build/customActions.wixobj build/dialogShortcuts.wixobj build/installDir.wixobj build/appDataDir.wixobj -out build/sourcetrail.msi \ build/sourcetrail.wixobj build/customActions.wixobj build/dialogShortcuts.wixobj build/installDir.wixobj build/appDataDir.wixobj -out build/sourcetrail.msi \
> build/linkLog.txt > build/linkLog.txt
+1 -1
View File
@@ -254,9 +254,9 @@
<ComponentGroupRef Id='DataCxxComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataCxxComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataFallbackComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataFallbackComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataFontsComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataFontsComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataGuiComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataGuiComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataJavaComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataJavaComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataPythonComponentGroup' Primary="yes"/>
<ComponentGroupRef Id='DataSyntaxHighlightingRulesComponentGroup' Primary="yes"/> <ComponentGroupRef Id='DataSyntaxHighlightingRulesComponentGroup' Primary="yes"/>
<ComponentRef Id='UninstallBat'/> <ComponentRef Id='UninstallBat'/>
+2 -1
View File
@@ -24,7 +24,7 @@ fi
ROOT_DIR=$ROOT_DIR/.. ROOT_DIR=$ROOT_DIR/..
# Enter masterproject directory # Enter sourcetrail root directory
cd $ROOT_DIR/ cd $ROOT_DIR/
if [ $PLATFORM == "Windows" ]; then if [ $PLATFORM == "Windows" ]; then
@@ -41,6 +41,7 @@ if [ $PLATFORM == "Windows" ]; then
fi fi
# Remove folders and contents # Remove folders and contents
rm -rf bin/app/data/python
rm -rf java_indexer/bin rm -rf java_indexer/bin
rm -rf build rm -rf build
+70
View File
@@ -0,0 +1,70 @@
#!/bin/bash
SOURCETRAIL_PYTHON_INDEXER_VERSION="v0_db23_p2"
# Determine current platform
PLATFORM='unknown'
if [ "$(uname)" == "Darwin" ]; then
PLATFORM='osx'
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
PLATFORM='linux'
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
PLATFORM='windows'
fi
PACKAGE_NAME="SourcetrailPythonIndexer_${SOURCETRAIL_PYTHON_INDEXER_VERSION}-${PLATFORM}"
PACKAGE_FILE_NAME="${PACKAGE_NAME}.zip"
PACKAGE_URL="https://github.com/CoatiSoftware/SourcetrailPythonIndexer/releases/download/${SOURCETRAIL_PYTHON_INDEXER_VERSION}/${PACKAGE_FILE_NAME}"
TEMP_PATH="build/temp"
TARGET_PATH="bin/app/data/python"
ABORT="\033[31mAbort:\033[00m"
SUCCESS="\033[32mSuccess:\033[00m"
INFO="\033[33mInfo:\033[00m"
if [ $PLATFORM == "windows" ]; then
ORIGINAL_PATH_TO_SCRIPT="${0}"
CLEANED_PATH_TO_SCRIPT="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
ROOT_DIR=`dirname "$CLEANED_PATH_TO_SCRIPT"`
else
ROOT_DIR="$( cd "$( dirname "$0" )" && pwd )"
fi
ROOT_DIR=$ROOT_DIR/..
# Enter main directory
cd $ROOT_DIR/
mkdir -p $TEMP_PATH
echo -e $INFO "starting to download $PACKAGE_FILE_NAME"
if [ $PLATFORM == "linux" ]; then
wget -O $TEMP_PATH/$PACKAGE_FILE_NAME $PACKAGE_URL
elif [ $PLATFORM == "osx" ]; then
wget -O $TEMP_PATH/$PACKAGE_FILE_NAME $PACKAGE_URL
elif [ $PLATFORM == "windows" ]; then
certutil.exe -urlcache -split -f $PACKAGE_URL $TEMP_PATH/$PACKAGE_FILE_NAME
fi
echo -e $INFO "finished downloading $PACKAGE_FILE_NAME"
if [ $PLATFORM == "linux" ]; then
unzip -d $TEMP_PATH $TEMP_PATH/$PACKAGE_FILE_NAME
elif [ $PLATFORM == "osx" ]; then
unzip -d $TEMP_PATH $TEMP_PATH/$PACKAGE_FILE_NAME
elif [ $PLATFORM == "windows" ]; then
winrar x $TEMP_PATH/$PACKAGE_FILE_NAME $TEMP_PATH
fi
echo -e $INFO "clearing $TARGET_PATH"
rm -rf $TARGET_PATH
mkdir -p $TARGET_PATH
cp -r $TEMP_PATH/$PACKAGE_NAME/* $TARGET_PATH
echo -e $INFO "clearing temporary data at $TEMP_PATH"
rm -rf $TEMP_PATH
+9 -4
View File
@@ -34,10 +34,9 @@ echo -e $INFO "install git settings"
git config commit.template setup/git/git_commit_template.txt git config commit.template setup/git/git_commit_template.txt
git config color.ui true git config color.ui true
if [ -d ".git/hooks" ] if [ -d ".git/hooks" ]; then
then cp setup/git/git_pre_commit_hook.sh .git/hooks/pre-commit
cp setup/git/git_pre_commit_hook.sh .git/hooks/pre-commit cp setup/git/git_pre_push_hook.sh .git/hooks/pre-push
cp setup/git/git_pre_push_hook.sh .git/hooks/pre-push
fi fi
# Create Debug and Release folders # Create Debug and Release folders
@@ -102,6 +101,12 @@ else
mkdir -p build/Release/test mkdir -p build/Release/test
fi fi
if [ $PLATFORM == "Windows" ]; then
sh script/download_python_indexer.sh
else
MY_PATH=`dirname "$0"`
$MY_PATH/download_python_indexer.sh
fi
if [ $PLATFORM == "Windows" ]; then if [ $PLATFORM == "Windows" ]; then
echo -e $INFO "creating program icon" echo -e $INFO "creating program icon"
+1
View File
@@ -75,6 +75,7 @@ cp -R ../../../bin/app/data/syntax_highlighting_rules $RES_DIR/data/syntax_highl
cp -R ../../../bin/app/data/fonts $RES_DIR/data/fonts cp -R ../../../bin/app/data/fonts $RES_DIR/data/fonts
cp -R ../../../bin/app/data/gui $RES_DIR/data/gui cp -R ../../../bin/app/data/gui $RES_DIR/data/gui
cp -R ../../../bin/app/data/java $RES_DIR/data/java cp -R ../../../bin/app/data/java $RES_DIR/data/java
cp -R ../../../bin/app/data/python $RES_DIR/data/python
cp -R ../../../bin/app/data/fallback $RES_DIR/data/fallback cp -R ../../../bin/app/data/fallback $RES_DIR/data/fallback
cp -R ../../../bin/app/user/projects $RES_DIR/data/fallback/projects cp -R ../../../bin/app/user/projects $RES_DIR/data/fallback/projects
+3 -2
View File
@@ -9,6 +9,7 @@
#include "SourceGroupFactory.h" #include "SourceGroupFactory.h"
#include "SourceGroupFactoryModuleCxx.h" #include "SourceGroupFactoryModuleCxx.h"
#include "SourceGroupFactoryModuleJava.h" #include "SourceGroupFactoryModuleJava.h"
#include "SourceGroupFactoryModulePython.h"
#include "SourceGroupFactoryModuleCustom.h" #include "SourceGroupFactoryModuleCustom.h"
#include "QtNetworkFactory.h" #include "QtNetworkFactory.h"
#include "QtApplication.h" #include "QtApplication.h"
@@ -46,7 +47,6 @@ void setupLogging()
LogManager* logManager = LogManager::getInstance().get(); LogManager* logManager = LogManager::getInstance().get();
std::shared_ptr<ConsoleLogger> consoleLogger = std::make_shared<ConsoleLogger>(); std::shared_ptr<ConsoleLogger> consoleLogger = std::make_shared<ConsoleLogger>();
// consoleLogger->setLogLevel(Logger::LOG_WARNINGS | Logger::LOG_ERRORS);
consoleLogger->setLogLevel(Logger::LOG_ALL); consoleLogger->setLogLevel(Logger::LOG_ALL);
logManager->addLogger(consoleLogger); logManager->addLogger(consoleLogger);
@@ -186,10 +186,11 @@ void addLanguagePackages()
{ {
SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleCxx>()); SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleCxx>());
SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleJava>()); SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleJava>());
SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModulePython>());
SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleCustom>()); SourceGroupFactory::getInstance()->addModule(std::make_shared<SourceGroupFactoryModuleCustom>());
LanguagePackageManager::getInstance()->addPackage(std::make_shared<LanguagePackageJava>());
LanguagePackageManager::getInstance()->addPackage(std::make_shared<LanguagePackageCxx>()); LanguagePackageManager::getInstance()->addPackage(std::make_shared<LanguagePackageCxx>());
LanguagePackageManager::getInstance()->addPackage(std::make_shared<LanguagePackageJava>());
} }
QCoreApplication* createApplication(int &argc, char *argv[], bool noGUI = false) QCoreApplication* createApplication(int &argc, char *argv[], bool noGUI = false)
+2
View File
@@ -360,6 +360,8 @@ add_files(
settings/SourceGroupSettingsJavaMaven.h settings/SourceGroupSettingsJavaMaven.h
settings/SourceGroupSettingsJavaSonargraph.cpp settings/SourceGroupSettingsJavaSonargraph.cpp
settings/SourceGroupSettingsJavaSonargraph.h settings/SourceGroupSettingsJavaSonargraph.h
settings/SourceGroupSettingsPythonEmpty.cpp
settings/SourceGroupSettingsPythonEmpty.h
settings/SourceGroupSettingsWithClasspath.cpp settings/SourceGroupSettingsWithClasspath.cpp
settings/SourceGroupSettingsWithClasspath.h settings/SourceGroupSettingsWithClasspath.h
settings/SourceGroupSettingsWithCppStandard.cpp settings/SourceGroupSettingsWithCppStandard.cpp
@@ -8,6 +8,8 @@ std::string indexerCommandTypeToString(IndexerCommandType type)
return "indexer_command_cxx"; return "indexer_command_cxx";
case INDEXER_COMMAND_JAVA: case INDEXER_COMMAND_JAVA:
return "indexer_command_java"; return "indexer_command_java";
case INDEXER_COMMAND_PYTHON:
return "indexer_command_python";
case INDEXER_COMMAND_CUSTOM: case INDEXER_COMMAND_CUSTOM:
return "indexer_command_custom"; return "indexer_command_custom";
default: default:
@@ -20,6 +22,7 @@ IndexerCommandType stringToIndexerCommandType(const std::string& s)
{ {
if (s == indexerCommandTypeToString(INDEXER_COMMAND_CXX)) return INDEXER_COMMAND_CXX; if (s == indexerCommandTypeToString(INDEXER_COMMAND_CXX)) return INDEXER_COMMAND_CXX;
if (s == indexerCommandTypeToString(INDEXER_COMMAND_JAVA)) return INDEXER_COMMAND_JAVA; if (s == indexerCommandTypeToString(INDEXER_COMMAND_JAVA)) return INDEXER_COMMAND_JAVA;
if (s == indexerCommandTypeToString(INDEXER_COMMAND_PYTHON)) return INDEXER_COMMAND_PYTHON;
if (s == indexerCommandTypeToString(INDEXER_COMMAND_CUSTOM)) return INDEXER_COMMAND_CUSTOM; if (s == indexerCommandTypeToString(INDEXER_COMMAND_CUSTOM)) return INDEXER_COMMAND_CUSTOM;
return INDEXER_COMMAND_UNKNOWN; return INDEXER_COMMAND_UNKNOWN;
} }
@@ -8,6 +8,7 @@ enum IndexerCommandType
INDEXER_COMMAND_UNKNOWN, INDEXER_COMMAND_UNKNOWN,
INDEXER_COMMAND_CXX, INDEXER_COMMAND_CXX,
INDEXER_COMMAND_JAVA, INDEXER_COMMAND_JAVA,
INDEXER_COMMAND_PYTHON,
INDEXER_COMMAND_CUSTOM INDEXER_COMMAND_CUSTOM
}; };
+2 -1
View File
@@ -499,7 +499,8 @@ void Project::buildIndex(RefreshInfo info, std::shared_ptr<DialogView> dialogVie
{ {
if (sourceGroup->getStatus() == SOURCE_GROUP_STATUS_ENABLED) if (sourceGroup->getStatus() == SOURCE_GROUP_STATUS_ENABLED)
{ {
if (sourceGroup->getType() == SOURCE_GROUP_CUSTOM_COMMAND) if (sourceGroup->getType() == SOURCE_GROUP_CUSTOM_COMMAND ||
sourceGroup->getType() == SOURCE_GROUP_PYTHON_EMPTY)
{ {
customIndexerCommandProvider->addProvider(sourceGroup->getIndexerCommandProvider(info.filesToIndex)); customIndexerCommandProvider->addProvider(sourceGroup->getIndexerCommandProvider(info.filesToIndex));
} }
+12 -4
View File
@@ -10,6 +10,8 @@ std::string languageTypeToString(LanguageType t)
return "C++"; return "C++";
case LANGUAGE_JAVA: case LANGUAGE_JAVA:
return "Java"; return "Java";
case LANGUAGE_PYTHON:
return "Python";
case LANGUAGE_CUSTOM: case LANGUAGE_CUSTOM:
return "Custom"; return "Custom";
case LANGUAGE_UNKNOWN: case LANGUAGE_UNKNOWN:
@@ -20,19 +22,23 @@ std::string languageTypeToString(LanguageType t)
LanguageType stringToLanguageType(std::string s) LanguageType stringToLanguageType(std::string s)
{ {
if (s == "C") if (s == languageTypeToString(LANGUAGE_C))
{ {
return LANGUAGE_C; return LANGUAGE_C;
} }
else if (s == "C++") else if (s == languageTypeToString(LANGUAGE_CPP))
{ {
return LANGUAGE_CPP; return LANGUAGE_CPP;
} }
else if (s == "Java") else if (s == languageTypeToString(LANGUAGE_JAVA))
{ {
return LANGUAGE_JAVA; return LANGUAGE_JAVA;
} }
else if (s == "Custom") else if (s == languageTypeToString(LANGUAGE_PYTHON))
{
return LANGUAGE_PYTHON;
}
else if (s == languageTypeToString(LANGUAGE_CUSTOM))
{ {
return LANGUAGE_CUSTOM; return LANGUAGE_CUSTOM;
} }
@@ -63,6 +69,8 @@ LanguageType getLanguageTypeForSourceGroupType(SourceGroupType t)
return LANGUAGE_JAVA; return LANGUAGE_JAVA;
case SOURCE_GROUP_JAVA_SONARGRAPH: case SOURCE_GROUP_JAVA_SONARGRAPH:
return LANGUAGE_JAVA; return LANGUAGE_JAVA;
case SOURCE_GROUP_PYTHON_EMPTY:
return LANGUAGE_PYTHON;
case SOURCE_GROUP_CUSTOM_COMMAND: case SOURCE_GROUP_CUSTOM_COMMAND:
return LANGUAGE_CUSTOM; return LANGUAGE_CUSTOM;
default: default:
+1
View File
@@ -10,6 +10,7 @@ enum LanguageType
LANGUAGE_CPP, LANGUAGE_CPP,
LANGUAGE_C, LANGUAGE_C,
LANGUAGE_JAVA, LANGUAGE_JAVA,
LANGUAGE_PYTHON,
LANGUAGE_CUSTOM, LANGUAGE_CUSTOM,
LANGUAGE_UNKNOWN LANGUAGE_UNKNOWN
}; };
+4
View File
@@ -13,6 +13,7 @@
#include "SourceGroupSettingsJavaMaven.h" #include "SourceGroupSettingsJavaMaven.h"
#include "SourceGroupSettingsJavaGradle.h" #include "SourceGroupSettingsJavaGradle.h"
#include "SourceGroupSettingsJavaSonargraph.h" #include "SourceGroupSettingsJavaSonargraph.h"
#include "SourceGroupSettingsPythonEmpty.h"
#include "logging.h" #include "logging.h"
#include "utilityString.h" #include "utilityString.h"
#include "utilityUuid.h" #include "utilityUuid.h"
@@ -196,6 +197,9 @@ std::vector<std::shared_ptr<SourceGroupSettings>> ProjectSettings::getAllSourceG
case SOURCE_GROUP_JAVA_SONARGRAPH: case SOURCE_GROUP_JAVA_SONARGRAPH:
settings = std::make_shared<SourceGroupSettingsJavaSonargraph>(id, this); settings = std::make_shared<SourceGroupSettingsJavaSonargraph>(id, this);
break; break;
case SOURCE_GROUP_PYTHON_EMPTY:
settings = std::make_shared<SourceGroupSettingsPythonEmpty>(id, this);
break;
case SOURCE_GROUP_CUSTOM_COMMAND: case SOURCE_GROUP_CUSTOM_COMMAND:
settings = std::make_shared<SourceGroupSettingsCustomCommand>(id, this); settings = std::make_shared<SourceGroupSettingsCustomCommand>(id, this);
break; break;
@@ -0,0 +1,54 @@
#include "SourceGroupSettingsPythonEmpty.h"
#include "FilePath.h"
SourceGroupSettingsPythonEmpty::SourceGroupSettingsPythonEmpty(const std::string& id, const ProjectSettings* projectSettings)
: SourceGroupSettings(id, SOURCE_GROUP_PYTHON_EMPTY, projectSettings)
{
}
std::shared_ptr<SourceGroupSettings> SourceGroupSettingsPythonEmpty::createCopy() const
{
return std::make_shared<SourceGroupSettingsPythonEmpty>(*this);
}
void SourceGroupSettingsPythonEmpty::load(std::shared_ptr<const ConfigManager> config)
{
SourceGroupSettings::load(config);
const std::string key = s_keyPrefix + getId();
SourceGroupSettingsWithExcludeFilters::load(config, key);
SourceGroupSettingsWithSourcePaths::load(config, key);
SourceGroupSettingsWithSourceExtensions::load(config, key);
}
void SourceGroupSettingsPythonEmpty::save(std::shared_ptr<ConfigManager> config)
{
SourceGroupSettings::save(config);
const std::string key = s_keyPrefix + getId();
SourceGroupSettingsWithExcludeFilters::save(config, key);
SourceGroupSettingsWithSourcePaths::save(config, key);
SourceGroupSettingsWithSourceExtensions::save(config, key);
}
bool SourceGroupSettingsPythonEmpty::equals(std::shared_ptr<SourceGroupSettings> other) const
{
std::shared_ptr<SourceGroupSettingsPythonEmpty> otherJava = std::dynamic_pointer_cast<SourceGroupSettingsPythonEmpty>(other);
return (
otherJava &&
SourceGroupSettings::equals(other) &&
SourceGroupSettingsWithExcludeFilters::equals(otherJava) &&
SourceGroupSettingsWithSourcePaths::equals(otherJava) &&
SourceGroupSettingsWithSourceExtensions::equals(otherJava)
);
}
std::vector<std::wstring> SourceGroupSettingsPythonEmpty::getDefaultSourceExtensions() const
{
return {
L".py"
};
}
@@ -0,0 +1,30 @@
#ifndef SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
#define SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
#include "SourceGroupSettings.h"
#include "SourceGroupSettingsWithExcludeFilters.h"
#include "SourceGroupSettingsWithSourceExtensions.h"
#include "SourceGroupSettingsWithSourcePaths.h"
class SourceGroupSettingsPythonEmpty
: public SourceGroupSettings
, public SourceGroupSettingsWithExcludeFilters
, public SourceGroupSettingsWithSourceExtensions
, public SourceGroupSettingsWithSourcePaths
{
public:
SourceGroupSettingsPythonEmpty(const std::string& id, const ProjectSettings* projectSettings);
std::shared_ptr<SourceGroupSettings> createCopy() const override;
void load(std::shared_ptr<const ConfigManager> config) override;
void save(std::shared_ptr<ConfigManager> config) override;
bool equals(std::shared_ptr<SourceGroupSettings> other) const override;
private:
std::vector<std::wstring> getDefaultSourceExtensions() const override;
};
#endif // SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
+8
View File
@@ -24,6 +24,8 @@ std::string sourceGroupTypeToString(SourceGroupType v)
return "Java Source Group from Gradle"; return "Java Source Group from Gradle";
case SOURCE_GROUP_JAVA_SONARGRAPH: case SOURCE_GROUP_JAVA_SONARGRAPH:
return "Java from Sonargraph"; return "Java from Sonargraph";
case SOURCE_GROUP_PYTHON_EMPTY:
return "Python Source Group";
case SOURCE_GROUP_CUSTOM_COMMAND: case SOURCE_GROUP_CUSTOM_COMMAND:
return "Custom Command Source Group"; return "Custom Command Source Group";
case SOURCE_GROUP_UNKNOWN: case SOURCE_GROUP_UNKNOWN:
@@ -56,6 +58,8 @@ std::string sourceGroupTypeToProjectSetupString(SourceGroupType v)
return "Java Source Group from Gradle"; return "Java Source Group from Gradle";
case SOURCE_GROUP_JAVA_SONARGRAPH: case SOURCE_GROUP_JAVA_SONARGRAPH:
return "Java from Sonargraph"; return "Java from Sonargraph";
case SOURCE_GROUP_PYTHON_EMPTY:
return "Empty Python Source Group";
case SOURCE_GROUP_CUSTOM_COMMAND: case SOURCE_GROUP_CUSTOM_COMMAND:
return "Custom Command Source Group"; return "Custom Command Source Group";
case SOURCE_GROUP_UNKNOWN: case SOURCE_GROUP_UNKNOWN:
@@ -106,6 +110,10 @@ SourceGroupType stringToSourceGroupType(const std::string& v)
{ {
return SOURCE_GROUP_JAVA_SONARGRAPH; return SOURCE_GROUP_JAVA_SONARGRAPH;
} }
else if (v == sourceGroupTypeToString(SOURCE_GROUP_PYTHON_EMPTY))
{
return SOURCE_GROUP_PYTHON_EMPTY;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CUSTOM_COMMAND)) else if (v == sourceGroupTypeToString(SOURCE_GROUP_CUSTOM_COMMAND))
{ {
return SOURCE_GROUP_CUSTOM_COMMAND; return SOURCE_GROUP_CUSTOM_COMMAND;
+1
View File
@@ -15,6 +15,7 @@ enum SourceGroupType
SOURCE_GROUP_JAVA_MAVEN, SOURCE_GROUP_JAVA_MAVEN,
SOURCE_GROUP_JAVA_GRADLE, SOURCE_GROUP_JAVA_GRADLE,
SOURCE_GROUP_JAVA_SONARGRAPH, SOURCE_GROUP_JAVA_SONARGRAPH,
SOURCE_GROUP_PYTHON_EMPTY,
SOURCE_GROUP_CUSTOM_COMMAND, SOURCE_GROUP_CUSTOM_COMMAND,
SOURCE_GROUP_UNKNOWN SOURCE_GROUP_UNKNOWN
}; };
+5
View File
@@ -32,6 +32,11 @@ FilePath ResourcePaths::getJavaPath()
return AppPath::getAppPath().concatenate(L"data/java/"); return AppPath::getAppPath().concatenate(L"data/java/");
} }
FilePath ResourcePaths::getPythonPath()
{
return AppPath::getAppPath().concatenate(L"data/python/");
}
FilePath ResourcePaths::getCxxCompilerHeaderPath() FilePath ResourcePaths::getCxxCompilerHeaderPath()
{ {
return AppPath::getAppPath().concatenate(L"data/cxx/include/").getCanonical(); return AppPath::getAppPath().concatenate(L"data/cxx/include/").getCanonical();
+1
View File
@@ -14,6 +14,7 @@ public:
static FilePath getFontsPath(); static FilePath getFontsPath();
static FilePath getGuiPath(); static FilePath getGuiPath();
static FilePath getJavaPath(); static FilePath getJavaPath();
static FilePath getPythonPath();
static FilePath getCxxCompilerHeaderPath(); static FilePath getCxxCompilerHeaderPath();
}; };
+3 -3
View File
@@ -1,13 +1,13 @@
#include "SourceGroupCxxEmpty.h" #include "SourceGroupCxxEmpty.h"
#include "CxxIndexerCommandProvider.h"
#include "IndexerCommandCxx.h"
#include "ApplicationSettings.h" #include "ApplicationSettings.h"
#include "CxxIndexerCommandProvider.h"
#include "FileManager.h"
#include "IndexerCommandCxx.h"
#include "SourceGroupSettingsCEmpty.h" #include "SourceGroupSettingsCEmpty.h"
#include "SourceGroupSettingsCppEmpty.h" #include "SourceGroupSettingsCppEmpty.h"
#include "SourceGroupSettingsWithCppStandard.h" #include "SourceGroupSettingsWithCppStandard.h"
#include "SourceGroupSettingsWithCStandard.h" #include "SourceGroupSettingsWithCStandard.h"
#include "FileManager.h"
#include "utility.h" #include "utility.h"
SourceGroupCxxEmpty::SourceGroupCxxEmpty(std::shared_ptr<SourceGroupSettingsCxx> settings) SourceGroupCxxEmpty::SourceGroupCxxEmpty(std::shared_ptr<SourceGroupSettingsCxx> settings)
@@ -35,6 +35,7 @@
#include "SourceGroupSettingsJavaGradle.h" #include "SourceGroupSettingsJavaGradle.h"
#include "SourceGroupSettingsJavaMaven.h" #include "SourceGroupSettingsJavaMaven.h"
#include "SourceGroupSettingsJavaSonargraph.h" #include "SourceGroupSettingsJavaSonargraph.h"
#include "SourceGroupSettingsPythonEmpty.h"
#include "MessageLoadProject.h" #include "MessageLoadProject.h"
#include "MessageStatus.h" #include "MessageStatus.h"
#include "ResourcePaths.h" #include "ResourcePaths.h"
@@ -404,6 +405,22 @@ namespace
return pages; return pages;
} }
template<>
std::vector<QtSourceGroupWizzardPage<SourceGroupSettingsPythonEmpty>> getSourceGroupWizzardPages<SourceGroupSettingsPythonEmpty>()
{
std::vector<QtSourceGroupWizzardPage<SourceGroupSettingsPythonEmpty>> pages;
{
QtSourceGroupWizzardPage<SourceGroupSettingsPythonEmpty> page("Indexed Paths", 750, 600);
page.addContentCreatorWithSettings<QtProjectWizzardContentPathsSource>(WIZZARD_CONTENT_CONTEXT_ALL);
page.addContentCreatorWithSettings<QtProjectWizzardContentPathsExclude>(WIZZARD_CONTENT_CONTEXT_ALL);
page.addContentCreatorWithSettings<QtProjectWizzardContentExtensions>(WIZZARD_CONTENT_CONTEXT_ALL);
pages.push_back(page);
}
return pages;
}
template<> template<>
std::vector<QtSourceGroupWizzardPage<SourceGroupSettingsCustomCommand>> getSourceGroupWizzardPages<SourceGroupSettingsCustomCommand>() std::vector<QtSourceGroupWizzardPage<SourceGroupSettingsCustomCommand>> getSourceGroupWizzardPages<SourceGroupSettingsCustomCommand>()
{ {
@@ -656,7 +673,7 @@ void QtProjectWizzard::executeSourceGroupSetup(std::shared_ptr<SettingsType> set
settings, settings,
std::bind(&QtProjectWizzard::cancelSourceGroup, this), std::bind(&QtProjectWizzard::cancelSourceGroup, this),
std::bind(&QtProjectWizzard::createSourceGroup, this, std::placeholders::_1) std::bind(&QtProjectWizzard::createSourceGroup, this, std::placeholders::_1)
); );
for (const QtSourceGroupWizzardPage<SettingsType>& page : getSourceGroupWizzardPages<SettingsType>()) for (const QtSourceGroupWizzardPage<SettingsType>& page : getSourceGroupWizzardPages<SettingsType>())
{ {
@@ -842,6 +859,10 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
{ {
fillSummary(summary, settings, this); fillSummary(summary, settings, this);
} }
else if (std::shared_ptr<SourceGroupSettingsPythonEmpty> settings = std::dynamic_pointer_cast<SourceGroupSettingsPythonEmpty>(group))
{
fillSummary(summary, settings, this);
}
else if (std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::dynamic_pointer_cast<SourceGroupSettingsCustomCommand>(group)) else if (std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::dynamic_pointer_cast<SourceGroupSettingsCustomCommand>(group))
{ {
fillSummary(summary, settings, this); fillSummary(summary, settings, this);
@@ -1100,6 +1121,12 @@ void QtProjectWizzard::selectedProjectType(SourceGroupType sourceGroupType)
executeSourceGroupSetup<SourceGroupSettingsJavaSonargraph>(settings); executeSourceGroupSetup<SourceGroupSettingsJavaSonargraph>(settings);
} }
break; break;
case SOURCE_GROUP_PYTHON_EMPTY:
{
std::shared_ptr<SourceGroupSettingsPythonEmpty> settings = std::make_shared<SourceGroupSettingsPythonEmpty>(sourceGroupId, m_projectSettings.get());
executeSourceGroupSetup<SourceGroupSettingsPythonEmpty>(settings);
}
break;
case SOURCE_GROUP_CUSTOM_COMMAND: case SOURCE_GROUP_CUSTOM_COMMAND:
{ {
std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::make_shared<SourceGroupSettingsCustomCommand>(sourceGroupId, m_projectSettings.get()); std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::make_shared<SourceGroupSettingsCustomCommand>(sourceGroupId, m_projectSettings.get());
@@ -14,6 +14,7 @@
#include "SourceGroupCustomCommand.h" #include "SourceGroupCustomCommand.h"
#include "SourceGroupCxxEmpty.h" #include "SourceGroupCxxEmpty.h"
#include "SourceGroupJavaEmpty.h" #include "SourceGroupJavaEmpty.h"
#include "SourceGroupPythonEmpty.h"
#include "ApplicationSettings.h" #include "ApplicationSettings.h"
#include "ResourcePaths.h" #include "ResourcePaths.h"
#include "SourceGroupSettingsCustomCommand.h" #include "SourceGroupSettingsCustomCommand.h"
@@ -22,6 +23,7 @@
#include "SourceGroupSettingsCxxCodeblocks.h" #include "SourceGroupSettingsCxxCodeblocks.h"
#include "SourceGroupSettingsCxxSonargraph.h" #include "SourceGroupSettingsCxxSonargraph.h"
#include "SourceGroupSettingsJavaEmpty.h" #include "SourceGroupSettingsJavaEmpty.h"
#include "SourceGroupSettingsPythonEmpty.h"
#include "SourceGroupSettingsWithClasspath.h" #include "SourceGroupSettingsWithClasspath.h"
#include "SourceGroupSettingsWithIndexedHeaderPaths.h" #include "SourceGroupSettingsWithIndexedHeaderPaths.h"
#include "SourceGroupSettingsWithExcludeFilters.h" #include "SourceGroupSettingsWithExcludeFilters.h"
@@ -261,6 +263,10 @@ std::vector<FilePath> QtProjectWizzardContentPathsSource::getFilePaths() const
{ {
allSourceFilePaths = SourceGroupJavaEmpty(settings).getAllSourceFilePaths(); allSourceFilePaths = SourceGroupJavaEmpty(settings).getAllSourceFilePaths();
} }
else if (std::shared_ptr<SourceGroupSettingsPythonEmpty> settings = std::dynamic_pointer_cast<SourceGroupSettingsPythonEmpty>(m_settings))
{
allSourceFilePaths = SourceGroupPythonEmpty(settings).getAllSourceFilePaths();
}
else if (std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::dynamic_pointer_cast<SourceGroupSettingsCustomCommand>(m_settings)) else if (std::shared_ptr<SourceGroupSettingsCustomCommand> settings = std::dynamic_pointer_cast<SourceGroupSettingsCustomCommand>(m_settings))
{ {
allSourceFilePaths = SourceGroupCustomCommand(settings).getAllSourceFilePaths(); allSourceFilePaths = SourceGroupCustomCommand(settings).getAllSourceFilePaths();
@@ -47,6 +47,7 @@ void QtProjectWizzardContentSelect::populate(QGridLayout* layout, int& row)
sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_GRADLE)); sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_GRADLE));
sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_SONARGRAPH)); sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_SONARGRAPH));
sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_EMPTY)); sourceGroupInfos[LANGUAGE_JAVA].push_back(SourceGroupInfo(SOURCE_GROUP_JAVA_EMPTY));
sourceGroupInfos[LANGUAGE_PYTHON].push_back(SourceGroupInfo(SOURCE_GROUP_PYTHON_EMPTY));
sourceGroupInfos[LANGUAGE_CUSTOM].push_back(SourceGroupInfo(SOURCE_GROUP_CUSTOM_COMMAND)); sourceGroupInfos[LANGUAGE_CUSTOM].push_back(SourceGroupInfo(SOURCE_GROUP_CUSTOM_COMMAND));
// define which icons should be used for which kind of source group // define which icons should be used for which kind of source group
@@ -60,6 +61,7 @@ void QtProjectWizzardContentSelect::populate(QGridLayout* layout, int& row)
m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_MAVEN] = L"mvn_icon"; m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_MAVEN] = L"mvn_icon";
m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_GRADLE] = L"gradle_icon"; m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_GRADLE] = L"gradle_icon";
m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_SONARGRAPH] = L"sonargraph_icon"; m_sourceGroupTypeIconName[SOURCE_GROUP_JAVA_SONARGRAPH] = L"sonargraph_icon";
m_sourceGroupTypeIconName[SOURCE_GROUP_PYTHON_EMPTY] = L"empty_icon";
m_sourceGroupTypeIconName[SOURCE_GROUP_CUSTOM_COMMAND] = L"empty_icon"; m_sourceGroupTypeIconName[SOURCE_GROUP_CUSTOM_COMMAND] = L"empty_icon";
// define descriptions for each kind of Source Group // define descriptions for each kind of Source Group
@@ -85,6 +87,8 @@ void QtProjectWizzardContentSelect::populate(QGridLayout* layout, int& row)
m_sourceGroupTypeDescriptions[SOURCE_GROUP_JAVA_GRADLE] = "Create a new Source Group from an existing Gradle project."; m_sourceGroupTypeDescriptions[SOURCE_GROUP_JAVA_GRADLE] = "Create a new Source Group from an existing Gradle project.";
m_sourceGroupTypeDescriptions[SOURCE_GROUP_JAVA_SONARGRAPH] = m_sourceGroupTypeDescriptions[SOURCE_GROUP_JAVA_SONARGRAPH] =
"Create a new Source Group from an existing <a href=\"https://www.hello2morrow.com/products/sonargraph\">Sonargraph</a> project file."; "Create a new Source Group from an existing <a href=\"https://www.hello2morrow.com/products/sonargraph\">Sonargraph</a> project file.";
m_sourceGroupTypeDescriptions[SOURCE_GROUP_PYTHON_EMPTY] = "Create a new Sourcetrail Source Group by defining which Python files will be indexed. Note "
"that this Source Group type uses the <a href=\"https://github.com/CoatiSoftware/SourcetrailPythonIndexer\">SourcetrailPythonIndexer</a> in the background.";
m_sourceGroupTypeDescriptions[SOURCE_GROUP_CUSTOM_COMMAND] = "Create a new Source Group executing a custom command on each source file. " m_sourceGroupTypeDescriptions[SOURCE_GROUP_CUSTOM_COMMAND] = "Create a new Source Group executing a custom command on each source file. "
"This Source Group type can be used on <a href=\"https://github.com/CoatiSoftware/SourcetrailDB\">SourcetrailDB</a> binaries that add " "This Source Group type can be used on <a href=\"https://github.com/CoatiSoftware/SourcetrailDB\">SourcetrailDB</a> binaries that add "
"custom language support to Sourcetrail.<br /><br />Current Database Version: " + std::to_string(SqliteIndexStorage::getStorageVersion()); "custom language support to Sourcetrail.<br /><br />Current Database Version: " + std::to_string(SqliteIndexStorage::getStorageVersion());
+3 -3
View File
@@ -8,9 +8,9 @@ IndexerJava::~IndexerJava()
} }
void IndexerJava::doIndex( void IndexerJava::doIndex(
std::shared_ptr<IndexerCommandJava> indexerCommand, std::shared_ptr<IndexerCommandJava> indexerCommand,
std::shared_ptr<ParserClientImpl> parserClient, std::shared_ptr<ParserClientImpl> parserClient,
std::shared_ptr<IndexerStateInfo> m_indexerStateInfo std::shared_ptr<IndexerStateInfo> m_indexerStateInfo
){ ){
JavaParser(parserClient, m_indexerStateInfo).buildIndex(indexerCommand); JavaParser(parserClient, m_indexerStateInfo).buildIndex(indexerCommand);
} }
+9
View File
@@ -0,0 +1,9 @@
add_files(
LIB_PYTHON
project/SourceGroupFactoryModulePython.h
project/SourceGroupFactoryModulePython.cpp
project/SourceGroupPythonEmpty.h
project/SourceGroupPythonEmpty.cpp
)
@@ -0,0 +1,26 @@
#include "SourceGroupFactoryModulePython.h"
#include "SourceGroupPythonEmpty.h"
#include "SourceGroupSettingsPythonEmpty.h"
bool SourceGroupFactoryModulePython::supports(SourceGroupType type) const
{
switch (type)
{
case SOURCE_GROUP_PYTHON_EMPTY:
return true;
default:
break;
}
return false;
}
std::shared_ptr<SourceGroup> SourceGroupFactoryModulePython::createSourceGroup(std::shared_ptr<SourceGroupSettings> settings) const
{
std::shared_ptr<SourceGroup> sourceGroup;
if (std::shared_ptr<SourceGroupSettingsPythonEmpty> pythonSettings = std::dynamic_pointer_cast<SourceGroupSettingsPythonEmpty>(settings))
{
sourceGroup = std::shared_ptr<SourceGroup>(new SourceGroupPythonEmpty(pythonSettings));
}
return sourceGroup;
}
@@ -0,0 +1,13 @@
#ifndef SOURCE_GROUP_FACTORY_MODULE_PYTHON_H
#define SOURCE_GROUP_FACTORY_MODULE_PYTHON_H
#include "SourceGroupFactoryModule.h"
class SourceGroupFactoryModulePython: public SourceGroupFactoryModule
{
public:
bool supports(SourceGroupType type) const override;
std::shared_ptr<SourceGroup> createSourceGroup(std::shared_ptr<SourceGroupSettings> settings) const override;
};
#endif // SOURCE_GROUP_FACTORY_MODULE_PYTHON_H
@@ -0,0 +1,66 @@
#include "SourceGroupPythonEmpty.h"
#include "FileManager.h"
#include "IndexerCommandCustom.h"
#include "ProjectSettings.h"
#include "ResourcePaths.h"
#include "SourceGroupSettingsPythonEmpty.h"
#include "SqliteIndexStorage.h"
#include "utility.h"
SourceGroupPythonEmpty::SourceGroupPythonEmpty(std::shared_ptr<SourceGroupSettingsPythonEmpty> settings)
: m_settings(settings)
{
}
std::set<FilePath> SourceGroupPythonEmpty::filterToContainedFilePaths(const std::set<FilePath>& filePaths) const
{
return SourceGroup::filterToContainedFilePaths(
filePaths,
std::set<FilePath>(),
utility::toSet(m_settings->getSourcePathsExpandedAndAbsolute()),
m_settings->getExcludeFiltersExpandedAndAbsolute()
);
}
std::set<FilePath> SourceGroupPythonEmpty::getAllSourceFilePaths() const
{
FileManager fileManager;
fileManager.update(
m_settings->getSourcePathsExpandedAndAbsolute(),
m_settings->getExcludeFiltersExpandedAndAbsolute(),
m_settings->getSourceExtensions()
);
return fileManager.getAllSourceFilePaths();
}
std::vector<std::shared_ptr<IndexerCommand>> SourceGroupPythonEmpty::getIndexerCommands(const std::set<FilePath>& filesToIndex) const
{
std::vector<std::shared_ptr<IndexerCommand>> indexerCommands;
for (const FilePath& sourceFilePath : getAllSourceFilePaths())
{
if (filesToIndex.find(sourceFilePath) != filesToIndex.end())
{
indexerCommands.push_back(std::make_shared<IndexerCommandCustom>(
L"\"" + ResourcePaths::getPythonPath().wstr() + L"SourcetrailPythonIndexer\" --source-file-path=%{SOURCE_FILE_PATH} --database-file-path=%{DATABASE_FILE_PATH}",
m_settings->getProjectSettings()->getProjectFilePath(),
m_settings->getProjectSettings()->getTempDBFilePath(),
std::to_wstring(SqliteIndexStorage::getStorageVersion()),
sourceFilePath,
true
));
}
}
return indexerCommands;
}
std::shared_ptr<SourceGroupSettings> SourceGroupPythonEmpty::getSourceGroupSettings()
{
return m_settings;
}
std::shared_ptr<const SourceGroupSettings> SourceGroupPythonEmpty::getSourceGroupSettings() const
{
return m_settings;
}
@@ -0,0 +1,27 @@
#ifndef SOURCE_GROUP_PYTHON_EMPTY_H
#define SOURCE_GROUP_PYTHON_EMPTY_H
#include <memory>
#include <vector>
#include "SourceGroup.h"
class SourceGroupSettingsPythonEmpty;
class SourceGroupPythonEmpty: public SourceGroup
{
public:
SourceGroupPythonEmpty(std::shared_ptr<SourceGroupSettingsPythonEmpty> settings);
std::set<FilePath> filterToContainedFilePaths(const std::set<FilePath>& filePaths) const override;
std::set<FilePath> getAllSourceFilePaths() const override;
std::vector<std::shared_ptr<IndexerCommand>> getIndexerCommands(const std::set<FilePath>& filesToIndex) const override;
private:
std::shared_ptr<SourceGroupSettings> getSourceGroupSettings() override;
std::shared_ptr<const SourceGroupSettings> getSourceGroupSettings() const override;
std::shared_ptr<SourceGroupSettingsPythonEmpty> m_settings;
};
#endif // SOURCE_GROUP_PYTHON_EMPTY_H