create python environment instead of using pyinstaller
This commit is contained in:
@@ -26,6 +26,7 @@ build-*
|
||||
.DS_Store
|
||||
.idea
|
||||
.vscode
|
||||
__pycache__
|
||||
|
||||
/ide_plugins/vs/vs2015/SourcetrailPlugin/SourcetrailExtension/bin
|
||||
/ide_plugins/vs/vs2015/SourcetrailPlugin/SourcetrailExtension/obj
|
||||
|
||||
+39
-6
@@ -482,10 +482,38 @@ else()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
string(REGEX REPLACE "/" "\\\\" BACKSLASHED_CMAKE_BINARY_DIR ${CMAKE_BINARY_DIR})
|
||||
string(REGEX REPLACE "/" "\\\\" BACKSLASHED_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# Lib Python ---------------------------------------------------------------------
|
||||
|
||||
if (BUILD_PYTHON_LANGUAGE_PACKAGE)
|
||||
|
||||
file (STRINGS "${CMAKE_SOURCE_DIR}/submodules/SourcetrailPythonIndexer/SourcetrailDB/version.txt" VERSION_STRING)
|
||||
|
||||
string(REGEX REPLACE "v([0-9]+)\\..*" "\\1" INTERFACE_VERSION "${VERSION_STRING}")
|
||||
string(REGEX REPLACE "v[0-9]+\\.db([0-9]+)\\..*" "\\1" DATABASE_VERSION "${VERSION_STRING}")
|
||||
string(REGEX REPLACE "v[0-9]+\\.db[0-9]+\\.p([0-9]+).*" "\\1" PATCH_VERSION "${VERSION_STRING}")
|
||||
set(VERSION_STRING_UNDERSCORE "v${INTERFACE_VERSION}_db${DATABASE_VERSION}_p${PATCH_VERSION}")
|
||||
|
||||
message(STATUS "SourcetrailDB Version: ${VERSION_STRING}")
|
||||
message(STATUS "Interface Version: ${INTERFACE_VERSION}")
|
||||
message(STATUS "Database Version: ${DATABASE_VERSION}")
|
||||
message(STATUS "Patch Version: ${PATCH_VERSION}")
|
||||
|
||||
set(LIB_CORE_TARGET_NAME "SourcetrailDB_core_lib")
|
||||
add_subdirectory(
|
||||
"${CMAKE_SOURCE_DIR}/submodules/SourcetrailPythonIndexer/SourcetrailDB/core"
|
||||
"${CMAKE_BINARY_DIR}/SourcetrailPythonIndexer/SourcetrailDB/core")
|
||||
|
||||
set(PYTHON_BINDING_TARGET_NAME "bindings_python")
|
||||
set(PYTHON_BINDING_OUTPUT_DIR "")
|
||||
add_subdirectory(
|
||||
"${CMAKE_SOURCE_DIR}/submodules/SourcetrailPythonIndexer/SourcetrailDB/bindings_python"
|
||||
"${CMAKE_BINARY_DIR}/SourcetrailPythonIndexer/SourcetrailDB/bindings_python")
|
||||
|
||||
|
||||
add_library(${LIB_PYTHON_PROJECT_NAME} ${LIB_PYTHON_FILES})
|
||||
|
||||
create_source_groups(${LIB_PYTHON_FILES})
|
||||
@@ -502,14 +530,22 @@ if (BUILD_PYTHON_LANGUAGE_PACKAGE)
|
||||
#link_directories(${Boost_LIBRARY_DIRS})
|
||||
|
||||
target_link_libraries(${LIB_PYTHON_PROJECT_NAME} ${LIB_UTILITY_PROJECT_NAME} ${LIB_PROJECT_NAME})
|
||||
|
||||
add_dependencies(${LIB_PYTHON_PROJECT_NAME} _${PYTHON_BINDING_TARGET_NAME})
|
||||
|
||||
string(REGEX REPLACE "\\\\" "/" FORWARDSLASHED_PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR})
|
||||
set(PYTHON_ENVIRONMENT_DIR "${BACKSLASHED_CMAKE_SOURCE_DIR}\\bin\\app\\data\\python\\environment")
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${LIB_PYTHON_PROJECT_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND ${PROJECT_SOURCE_DIR}/script/download_python_indexer.sh
|
||||
COMMENT "download python indexer"
|
||||
COMMAND ${PROJECT_SOURCE_DIR}/script/update_python_indexer.sh
|
||||
COMMENT "updating python indexer scripts"
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND "cmd.exe" "/k" "rmdir" "${PYTHON_ENVIRONMENT_DIR}" & "${PYTHON_INCLUDE_DIR}/../python.exe" "-m" "venv" "--clear" "--copies" "${PYTHON_ENVIRONMENT_DIR}" & "${PYTHON_ENVIRONMENT_DIR}/Scripts/pip" "install" "-r" "${CMAKE_SOURCE_DIR}/submodules/SourcetrailPythonIndexer/requirements.txt" & exit
|
||||
)
|
||||
|
||||
else()
|
||||
|
||||
message(STATUS "Building the Python indexer will be skipped. You can enable building this target by setting 'BUILD_PYTHON_LANGUAGE_PACKAGE' to 'ON'.")
|
||||
@@ -695,9 +731,6 @@ if (WIN32)
|
||||
TARGET ${APP_PROJECT_NAME}
|
||||
PROPERTY VS_DEBUGGER_WORKING_DIRECTORY
|
||||
"${CMAKE_SOURCE_DIR}/bin/app")
|
||||
|
||||
string(REGEX REPLACE "/" "\\\\" BACKSLASHED_CMAKE_BINARY_DIR ${CMAKE_BINARY_DIR})
|
||||
string(REGEX REPLACE "/" "\\\\" BACKSLASHED_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
else ()
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES})
|
||||
endif ()
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SOURCETRAIL_PYTHON_INDEXER_VERSION="v1_db25_p5"
|
||||
|
||||
# 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'
|
||||
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ]; then
|
||||
PLATFORM='windows'
|
||||
elif [ "$OSTYPE" == "msys" ]; 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
|
||||
SCRIPT=`realpath $0`
|
||||
if [ "$SCRIPT" == "" ]; then
|
||||
|
||||
ORIGINAL_PATH_TO_SCRIPT="${0}"
|
||||
CLEANED_PATH_TO_SCRIPT="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
|
||||
SCRIPT_DIR=${CLEANED_PATH_TO_SCRIPT%/*}
|
||||
else
|
||||
ORIGINAL_PATH_TO_SCRIPT=`dirname $SCRIPT`
|
||||
SCRIPT_DIR="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
|
||||
fi
|
||||
else
|
||||
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
fi
|
||||
|
||||
echo "This script is running in: $SCRIPT_DIR"
|
||||
|
||||
|
||||
# Enter main directory
|
||||
cd $SCRIPT_DIR/
|
||||
cd ..
|
||||
|
||||
BINARY_PATH="$TARGET_PATH/SourcetrailPythonIndexer"
|
||||
if [ $PLATFORM == "windows" ]; then
|
||||
BINARY_PATH="${BINARY_PATH}.exe"
|
||||
fi
|
||||
|
||||
if [ -e "${BINARY_PATH}" ]; then
|
||||
echo -e $INFO "SourcetrailPythonIndexer already exists, checking version..."
|
||||
|
||||
INSTALLED_VERSION="$(${BINARY_PATH} --version)"
|
||||
INSTALLED_VERSION=${INSTALLED_VERSION#* }
|
||||
INSTALLED_VERSION="${INSTALLED_VERSION//./$'_'}"
|
||||
|
||||
if [ "$INSTALLED_VERSION" == "$SOURCETRAIL_PYTHON_INDEXER_VERSION" ]; then
|
||||
echo -e $INFO "Nothing to update. Target version of SourcetrailPythonIndexer is already installed."
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
7z x $TEMP_PATH/$PACKAGE_FILE_NAME -o$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
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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'
|
||||
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ]; then
|
||||
PLATFORM='windows'
|
||||
elif [ "$OSTYPE" == "msys" ]; then
|
||||
PLATFORM='windows'
|
||||
fi
|
||||
|
||||
INPUT_DIR="submodules/SourcetrailPythonIndexer"
|
||||
OUTPUT_DIR="bin/app/data/python"
|
||||
PYTHON_ENVIRONMENT_DIR="$OUTPUT_DIR/environment"
|
||||
PYTHON_INDEXER_DIR="$OUTPUT_DIR/indexer"
|
||||
|
||||
ABORT="\033[31mAbort:\033[00m"
|
||||
SUCCESS="\033[32mSuccess:\033[00m"
|
||||
INFO="\033[33mInfo:\033[00m"
|
||||
|
||||
if [ $PLATFORM == "windows" ]; then
|
||||
SCRIPT=`realpath $0`
|
||||
if [ "$SCRIPT" == "" ]; then
|
||||
|
||||
ORIGINAL_PATH_TO_SCRIPT="${0}"
|
||||
CLEANED_PATH_TO_SCRIPT="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
|
||||
SCRIPT_DIR=${CLEANED_PATH_TO_SCRIPT%/*}
|
||||
else
|
||||
ORIGINAL_PATH_TO_SCRIPT=`dirname $SCRIPT`
|
||||
SCRIPT_DIR="${ORIGINAL_PATH_TO_SCRIPT//\\//}"
|
||||
fi
|
||||
else
|
||||
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
fi
|
||||
|
||||
echo "This script is running in: $SCRIPT_DIR"
|
||||
|
||||
# Enter main directory
|
||||
cd $SCRIPT_DIR/
|
||||
cd ..
|
||||
|
||||
echo "Clean $PYTHON_INDEXER_DIR"
|
||||
rm -rf $PYTHON_INDEXER_DIR
|
||||
|
||||
echo "Copy python indexer files to $PYTHON_INDEXER_DIR"
|
||||
mkdir $PYTHON_INDEXER_DIR
|
||||
cp $INPUT_DIR/_version.py $PYTHON_INDEXER_DIR
|
||||
cp $INPUT_DIR/run.py $PYTHON_INDEXER_DIR
|
||||
cp $INPUT_DIR/indexer.py $PYTHON_INDEXER_DIR
|
||||
cp $INPUT_DIR/shallow_indexer.py $PYTHON_INDEXER_DIR
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user