* this seems to be required when using the new QProcess API.
* this also required to remove quotes that were added to path args because otherwise the Python indexer would mistake absolute paths for relative paths.
This is done because users may already be used to "preferences" being the bottom-most button and may accidentally click "Save Graph as Image..." when they actually want to open the preferences screen.
The non-QStringList variant of QProcess::start() was removed in Qt 5.15.
The adapted method handles escaping of the arguments, which simplifies
code in some locations.
Changing tabs during animation triggers a hover leave event on the focused node, which moves the focus to the parent node if available. This parent node however is still the old node, and deleted after the graph transition animation finishes, which leaves a dangling pointer.
closes#1021
Unified Linux package creation into single script 'setup/Linux/createPackages.sh' that uses 'linuxdeployqt' for both the '.tar.gz' and '.AppImage' package.
* Only retrieve FilePath::wstr once per checked FilePath
* Replaced all invokation of FilePathFilter::isMatching with FilePathFilter::areMatching
* Don't pass match to std::regex_match
* set 'optimize' flag on regexes
partly fixes#1007
Switch from using boost::filesystem::portable_name and boost::filesystem::portable_directory_name to using boost::filesystem::windows_name, which allows periods and spaces in paths.
Fixes#957
* Fixed tooltip list items not activated on click
* Fixed crash when clearing focused graph edges after displaying graph with no edges
* Updated and fixed manual graph view tests
* Fixed previous location refocused when activating local symbol
* Fixed crash in graph view after showing empty graph
Scroll graph area with Ctrl + Arrows
Moved graph zoom to Ctrl + Shift + Up/Down
Scroll code area with Ctrl + Arrows
Fixed graph showing focus when activating the active symbol
Made links in project description focus-able
Fixed parent graph node not showing focus after hovering edge to child node
* switch focus between views with Tab
* move focus within views with WASD/HJKL/Arrows
* move focus between graph edges by holding Shift
* move focus between code references by holding Shift
* removed graph panning with WASD and moved zooming to Alt + W/S
* removed graph navigation by pressing starting character in graph view lists
* changed local reference and custom trail shortcuts
* updated Keyboard Shortcuts window
* use common back and forward shortcuts and YZ & Shift + YZ
* fix macOS issue where widgets don't get proper focus after creating a new tab
* don't use shared_ptr in QtMainView
fixes#486, #327, #214, #210
This prevents the automatic path detection from adding paths to the project settings or application settings that cause the "you have missing paths" dialog to pop up when saving the settings.
* It happens when executed both from Qt and TaskScheduler thread in parallel.
* I found that the signal within QtThreadedFunctorHelper::operator() was sometimes not emitted and therefore QtThreadedFunctorHelper::execute() was never called.
* Fix some more clazy-qstring-allocation warnings
* Fix missing refs on large types in lib_gui
* Fix trivially copyable types being passed by ref in lib_gui
Separated UI refresh into 'style' and 'state' refresh to avoid race condition between task scheduler thread and UI thread that affected code view state.
fixes#916
* fixed Source Group setup from Visual Studio Extension
* fixed crashes in project setup due to use of std::shared_ptr
* fixed source file count not updated on 'show files' click
* fixed passing wheel events to parents when list boxes can't handle them
* removed QtSourceGroupWizard, QtSourceGroupWizardPage and context types
* removed isInForm flag of QtProjectWizardContent
* added check of empty source paths
* set project window as parent for message boxes, so they don't get hidden behind main window
* fixed issues when removing and duplicating source groups
* updated project setup tests to no steps
Fixed an endless recursion that happenes when the index contains cyclic inheritance relationships,
which might accidentally appear due to name collisions.
* Added utilities::caseInsensitiveLess to compare two wstring arguments
* Replaced less comparision method in DummyNodeComp.
* Added tests for caseInsensitiveLess.
* first try to implement closeTabs toRight.
* removed .kdev4
* signals and slots mechanisms for closeTabstoRight now done correct.
* feature: add option to close tabs to the right on right-click context menu.
* indentation, whitespaces etc.
Fixes the build on Gentoo Linux. On Gentoo Linux the user chooses which
llvm backend to build and install, therefore we need to loop over the
installed targets and append the libraries needed instead of relying on
the full list of supported backends.
* added "--shallow" command line option to request shallow indexing
* modified behavior of Sourcetrail to always perform a deep index if not explicitly specified differently by the user
* fix compiler issue where string was returned instead of wstring
* fix boost caching in CMakeList: for CMake 3.12.2 the "set" command requires a docstring if the CACHE flag is set
getSearchTypeName() needs to always return std:wstring.
We cover all cases because our switch contains all current possibilities
for Search_Type.
But the compiler will still warn/error on this, depending on system
configuration.
Regards https://github.com/CoatiSoftware/Sourcetrail/issues/758
elide() needs to always return std:string.
We cover all cases because our switch contains all current possibilities
for ElideMode.
But the compiler will still warn/error on this, depending on system
configuration.
I would like to add a `return "";` or `return str;` or add a `default:`
case to the switch to silence this compiler complaint.
Regards https://github.com/CoatiSoftware/Sourcetrail/issues/758
Currently the output of these tests depends on the c++ standard library that is installed on the executing machine. So for some machines these tests would pass while they fail on other machines.
* removed preprocessor guards in language specific files to avoid "file has no symbols" warning
* separated files into multiple lists in lib and lib_gui CMakeLists.txt for each language package
* in addition: add unloadable sourcegroup to visualize, load and save information when loading a project that contains source groups that are not supported by the build
* use flags of first source file that specifies an "-include-pch" flag for generating the .pch file
* allow to save project settings without specifying input header file if cdb contains -include-pch args
* show proper error message in console when project configuration has issues
* quit when project configuration is wrong
* show indexing progress as self-updating percentage
* open custom trail dialg via button in top of trail controls
* search from symbol to symbol or all referenced/referencing of symbol
* define search depth with slider
* define horizontal/vertical layout
* define node and edge types
* renamed depth graph to trail in graph ui
* added custom trail UI tests
fortune cookie message = A happy surprise is waiting for you.
* removed unused utilityMath
* removed some unused functions from utility
* moved time related utility functions to TimeStamp
* moved path objects from utility to app/paths
* moved objects in lib to lib/app
* removed duplicate confirm methods in DialogView
* moved utilityFile to utility/file
* removed uint typedef and replaced with size_t everywhere
* removed boost header in utilityUuid
* further change: initialize all llvm targets before indexing
* further change: remove configurable dependencies directory from gradle and maven sourcegroups
* moved initView() implementation where used into constructor
* specify methods as override instead of virtual where applicable
* use default destructors where applicable
* reduced mouse drag sensibility when clicking on graph nodes
* also edit search element when cursor in front and pressing DELETE
* scroll to up to minimized snippet after minimizing when scrolled down far
* Python sourcegroup now displays if a provided Python environment is valid
* update used version of SourcetrailPythonIndexer
* changed executeProcess() to return the process' exit code and console output
* use multiple columns for access nodes if no child has edges
* try to layout close to a square
* layout neighboring accesses to the width of the largest
* increase threshold to hide children on parent activation to 100
* use square layouting in inheritance trees as well
* Implemented new format splitting user, version, and usage period into separate lines
* Refactored all classes: License, LicenseGenerator, LicenseChecker
* Removed redundant license check hash from ApplicationSettings, don't generate, store and check it anymore
* Moved license checking and encoding logic to LicenseChecker
* Moved default for license generation to main.cpp
* Refactored license checking logic in whole app, removed involved message types
* Added LicenseCheckerTestSuite for checking all legacy and current license types
* Generate new license type lifelong
* Rerun header path detection when only cxx header path is present after update in migration
* Check if path exists in header and framework path detection on mac/linux
* Always add compiler header path when prefilling on first start, regardless of successful detection
* Show compiler header path in path list box on top and readonly
* Prepend compiler header path on Windows in system header path compiler flags, append otherwise
* Show warning when saving ApplicationSettings if compiler header path is not in global include paths
* Show warning when saving ApplicationSettings if there is another path containing compiler headers
* updated version of fallback ApplicationSettings.xml to current settings version
* removed is-empty-check when pre-filling settings at the first start of Sourcetrail
* pass file language from storage to code view
* load syntax highlighting rules files from install directory "syntax_highlighting_rules"
* files must be named <language_identifier>.rules to make syntax highlighting work
* Added new Source Group type SourceGroupCustomCommand to UI and ProjectSettings
* The Source Group executes a specified command on every source file
* The variables $SOURCE_PATH, $PROJECT_PATH, $DB_PATH, $STORAGE_VERSION can be passed
* The commands are executed after all other source groups finished indexing
* The command is executed with working directory set to project directory
* Errors during command execution are shown as status update and in the Status View
* SourceGroupCustomCommand cannot be partially cleared, when one file needs clearing the project must be fully re-indexed
* Enabled errors table during indexing
* Store intermediate errors in StorageCache
* Open tab for errors if no tab yet
* "Show errors" for file disabled during indexing
* Hide indexing dialogs with ESC instead of stopping indexing
* Fixed indexing can be interrupted when dialog hidden
* Clear intermediate storages when interrupting
* Abort waiting for less queued storages when indexing interrupted
* Don't index another file when indexing was already interrupted
* Moved indexing interrupted progress dialog to TaskBuildIndex
* Use MessageIndexingInterrupted instead of MessageInterruptTasks
* Added tab bar to top of main window with UI/shortcuts similar to web browsers
* ComponentManager offers components for 2 use-cases: application and tab
* Application components: log view (status/errors), bookmarks, screen search, status bar, tabs, tooltips, dialogs and all tab views disabled
* Tab components: graph, code, history and search
* When a project is loaded there is always at least one tab, otherwise there is none
* Each tab replaces the application views of the same name in the main layout when activated
* Each tab has it's own TaskScheduler, to process tasks independent from other tabs
* The application has a global TaskScheduler for application wide tasks
* The singloton class TaskManager is responsible for managing the TaskSchedulers
* MessageListeners and Messages hold an optional schedulerId, both must be set to only send to a specific TaskScheduler
* Bookmark buttons where split off into a separate view per tab, bookmark managemement is done in the application
* History menu processing is done by the QtMainWindow now
* Screen search is an application component, the responders are always changed to the active tab
* Plugin messages are opened in a new tab
* Symbols can be opened in a new tab via middle click/context menu in graph, code, history dropdown
* Full text index creation is mutexed now in PersistenStorage to make it fully thread-safe
* All tabs are closed when switching projects
* Tab contents are only animated when visible
fortune cookie message = Catch your lucky star!
* fixed Boost c++ standard
* build with docker on mac
* added mail script
* fixed cxx index sample test on mac
* disabled gradle source group test for linux docker builds
* changed expected output of Bullet and Box2D to new formatting (without duplicates)
* minor additions due to clang update
* updated expected output of TicTacToe project with all headers indexed
* don't use thread::detach() in TaskGroupParallel::terminate to make it useful for tabs
* properly terminate TaskFillIndexerCommandQueue
* fixed wrong microsecond delays
* moved some task delays to TaskDecoratorRepeat for better transparency
* News are passed as JSON string, containing an array of news items.
* Each news item has version and content (html).
* Items can be filtered by min/max version, OS and license. The first item that fits is used.
* Items can be important, which highlights the news box.
* News are not shown if older than 5 days.
fortune cookie message = You will be financially successful in case your actions are well planned.
* use in local index building during refresh
* use in read cache building on project load
* use in some storage access requests
* also slightly improves speed
* fixed undoing to multiple actives didn't show all nodes in graph
* fixed wrong name in search bar, status message and history dropdown
* fixed flicker when activating multiple nodes in code view
* Fixed TaskFillIndexerCommandQueue exiting right away when all commands fitted into queue on first call
* Fixed TaskBuildIndex exiting right away when starting of indexer processes takes longer than the update cycle
* Refactored Indexing Tasks Behavior Tree
* Pass NameHierarchy to record new symbol returning an Id
* Cache symbol Ids in Parser implementation
* Reuse symbol Ids as reference when recording related data
* Pass FilePath to record new file returning an Id
* Cache file Ids in CanonicalFilePathCache
* Store file Id in ParseLocation instead of FilePath
fortune cookie message = You know a silent way to impose your will.
* Removed storage checks and single use methods
* cache file ids in ParserClientImpl to avoid lookup for every source location
* NameHierarchy::serialize with range to avoid copies when adding nodes
* removed duplicate code in IndexerCxx and IndexerJava, moved to Indexer
* use unique_ptr for CxxName handling
* create CxxNameResolver from other
* improved string handling in CxxName types
* only traverse decls within projects
* use macro in ast visitor to call into each component instead of virtual calls
* improved CxxName caching performance
* refactored CxxNameResolver classes to use less locals
* removed paths in include directives
* changed cmake to provide necessary header search paths
* changed name of version.h to productVersion.h due to name conflict
* moved SystemHeaderSearchPaths and FramewordSeearchPaths of indexer cxx indexer commands to CompilerFlags section
* added SourceGroupTestSuite to test indexer command generation of all source groups
* removed "compile_commands.json" from gitignore, because a resource file for the tests has this name
* fixed case where "to-index" state of a file has changed and thus the file needs to be re-indexed
* clear and re-index files that depend on changed non-indexed files
* clear and re-index files referenced by unchanged but cleared (due to referencing a changed file) files
* fixed: updated files with changed timestamp that do not have content in the db will now count as changed
* refined refresh info generator tests
* updated checklists for manual project setup tests
* implemented task for sending IndexerCommands to shared memory on demand
* SourceGroups now return IndexerCommandProviders instead of just a list of indexer commands. This way information can be stored in a compressed format
* merged IndexerCommandCxxEmpty and IndexerCommandCxxCdb
* moved sorting of indexer commands by file size from IndexerCommandList to TaskFillIndexerCommandQueue
* removed obsolete IndexerCommandList class
* wait for IndexerCommandQueue to be filled before starting the indexers
* restart finished indexer processes while indexerCommandQueue is still running
* restart indexer threads as long as there are indexer commands to process
* removed Blackboard::getMutex() and added an atomic update() method
* we don't need to get the complete compile commands for this
* as a fallback, querying a single compile command for a file is fast, because it is stored in a map
* use std::string instead of std::wstring in temp indices
* use number types for edges and source locations in temp indices
* use map::emplace where appropriate
* moved 100 occurence insert optimization fully to sqlite index
* Fixed crash when signature was wrongly recorded
* Fixed line break at wrong position for template functions/methods
* Fixed already qualified name replace with qualified name, repeating qualifiers
* added tests for java type argument recording
* implemented recording type arguments for java ExpressionMethodReferences
* changed type_argument edge to originate in generic type
* added type_usage edge for type_arguments that originates in context (e.g. calling method)
* add compiled statement for batch inserting 100 occurrences at once
* removed unnecessary primary key from component_access to get rid of additional index table
* changed explicit check for existing symbols when injecting to implicit check in insert statement (insert or ignore)
* improved performance of adding edges by replacing edge multi part index with in-memory-index
* added in-memory-index for node table
* added in-memory-index for local_symbol table
* added in-memory-index for lource_location table
* moved setting storage mode to SqliteIndexStorage, because storage modes are not used anywhere else.
* don't store current mode as member because re-creating an existing index takes no time.
* add getter for name of SqliteDatabaseIndex
* removed unused method from persistent storage
* fixed crash when storage access proxy tries to access a deleted storage pointer
* refactored StorageAccessProxy implementation to use macros to generate proxy methods
* improved performance of "prepare indexing" step for all cxx source groups except empty
* unified code for filtering to contained file paths of source groups
* cleaned up code of SourceGroupFactoryModules
* fixed building longest common prefix array for full-text search by making values not relative the the charcode of the "a" character, because this would result in characters (e.g. "_") having a negarive value.
* centralized all file path caching in CanonicalFilePathCache
* added cache by clang::FileID
* moved FileRegister into CanonicalFilePathCache and removed it from AST* classes
* only record files once
* all dialogs for the indexing usecase can be hidden regardless of project state
* fixed some dialogs could not be shown
* pass dialogview into project and all indexing tasks
* pass application to project and tasks
* pass log directory absolute to indexers
* pass app and user paths absolute to indexers
* removed QCoreApplication instance from indexer process
* removed mutex from ConsoleLogger
* updated shortcut window
* renamed code reference menu items
* Show graph legend via 'legend' command or '?' button in the lower right corner
* Legend is not interactive: nodes and edges not clickable or moveable
* CXX and Java node types are mixed
* added clang system headers to data folder of Sourcetrail repo
* added clang system header search directory to detected directories on windows
* updated migration to add clang system header search directory on windows
* updated windows installer and portable package to include compiler headers
* updated linux package
* cleaned code of path detectors
* unrelated removal of unnecessary code in LicenseChecker and UpdateChecker
* switched SearchIndex and HierarchyCache to std::unique_ptr
* use move semantics and in-place initialization in StorageTypes and SearchIndex
* improved autocompletion speed by fixing contained node type checking
* added new location type
* refactored old recording code
* record signature locations for cxx functions and java methods
* added signature locations to sample project indexer tests
* ignore signature locations in ui
* signatures in tooltip with qualified name of the function/method
* added test for finding signature location of constructor with initializer list
* allow hiding of indexing dialogs to browse loaded project while indexing
* show indexing status in status bar while indexing
* use different dialog views for different use cases to avoid state collisions
* fixed error label in status bar jittering while indexing
* show hand cursors for clickable elements in status bar
* indexing is not interrupted on pressing ESC while in hidden
* disable error table and error label while indexing
* refactored indexing messages
* forbid indexing and changing project while indexing
* don't show indexing status messages in status bar when indexing in the background
* allow tasks to run in the background
fortune cookie message = A journey is waiting for you.
* keep old database on filesystem while indexing
* migrate old ".coatiproject" settings to new ".srctrlprj" extension when loading project
* send new errors in MessageErrorCountUpdate after injecting
* recheck filepath exist() in FileSystem's remove, rename, copy and create functions
* updated tasks to new "override" policy
* Common base class MessageActivateBase for activation messages with getter for SearchMatches
* Removed duplicate logic for creating SearchMatches from Messages
* Fixed can't reactivate fulltext search from history menu
* Renamed history message and moved to sub directory
* Fixed activating node type filters didn't clear code view
* Handle all error related messages in ErrorController
* Moved error filter state from Storage to ErrorController
* Moved all error related messages to type/error subdirectory
* Enable all errors shown by default
* Always show unfiltered error count in status bar and overview
* Fixed all errors shown again when changing error filter on errors for file
* also added current page count (e.g. 1/3) to project setup
* moved the code for copying a source group to the settings classes so that the wizzard doesn't need to know which source groups may be there anymore.
* fixed intermediatestorage merges might lose file indexed/complete information
* fixed changing file complete to true only possible if the file has no errors
* fixed clicking show errors for a file where no asociated errors were found showed all errors
* replace path to local compiler headers with packaged ones in include path detection
* added app settings migration to replace local compiler header path with path to packaged headers
* Flattened sourcegroupsettings class hierarchy by moving cross compilation options to own base class
* QtProjectWizzardContentFlags constructor required correct settings object to reduce the need for type casting
* QtProjectWizzardContentPath constructors required correct settings objects
* moved SourcePaths from SourceGroupSettingsJava to SourceGroupSettingsJavaEmpty because they are not required for Gradle and Maven projects
* removed classpath from maven and gradle source group settings
* reuse code of SourceGroup for "show source files" in wizard
* also changed xml elements in sourcegroup settings that specify the used language standard, so that one sourcegroup can maintain multiple language standards
* added migration and migrated sample projects
* added classes for loading a Sonargraph project
* added Sonargraph options to project setup wizard
* added test for generating indexer commands from Sonargraph modules
* fixed sqlite storage crashing in constructor when parent directory of provided path does not exist
* removed unused FileRegister from Java indexing
* removed unused info from IndexerCommandJava
* refactored loading and saving of SourceGroupSettings
* extracted sourcepaths settings to own class that can be re-used
* merged CDB wizard contentents for source file and indexed paths
* unified wizard content for sonargraph project path
* removed include filters from default source groups
* extracted generation of RefreshInfo from Project to RefreshInfoGenerator
* added tests for RefreshInfoGenerator
* added language and standard selection to sonargraph project setup
* added auto-detection for indexed header paths of sonargraph cmake json modules
* Sonargraph::Project can enable/disable support for specific modules
* warn if sonargraph project contains no matching modules
* indexed headers can be detected from sonargraph project
* disable re-pre-filling of indexed header paths if these are empty when showing settings of a cdb sourgroup
* fixed indexed header path were not regarded when deciding if project settings have been updated
* prevented indexed header paths for CDB to be appended to compile command
* fixed exists check for relative paths in QtSelectPathsDialog
* indexed header paths will automatically be updated when a new compilation database is picked
Cxx AstVisitor re-visits previously or simultaneously indexed files because the "visible" content may have changed due to other preprocessor defines etc.
* put nodes with bidirectional aggregations on the left
* layout aggregations either horizontal or vertical based on buckets
* exceed bucket height if only one element and vertical split
* fixed hiding nodes in sublayout showed empty spot
* fixed aggregation layout within group
* fixed moving of group did not resize view
* fixed edges behind group could not be hovered
* fixed overlapping lines in sublayout
* fixed use of correct column width in sublayout
* fixed build script for windows installer
* fixed java dependency version in windows installer
* accept eula in windows deploy script before indexing sample projects
* removed set license from windows deploy script before indexing sample projects
* implemented using multithreaing for building the fulltext search index
* also: decreased ideal thread count by 1 to keep the machine responsive while indexing and building the index
* extend horizontal edges to origin column width
* leave horizontal gap in the middle of the left and right buckets for routing edges
* move left and right buckets vertically so that edges enter and leave horizontally
* removed third pivoting for graph edges, all edges enter and leave relative to the node center now
* added buttons to enable grouping by file or namespace
* last used group settings saved to ApplicationSettings
* made groups hoverable/clickable on label only
* improved node hatching and override edge colors
* group overview lists
fortune cookie message = Seen with the eyes of love, everything gets a new meaning.
* split QtDirectoryListBox and QtStringListBox
* renamed QtDirectoryListBox to QtPathListBox
* extracted QtListItemWidget class to own file
* renamed QtListItemWidget to QtListBoxItem
* added SelectionPolicyType to QtPathListBox to allow for specifying if selecting files, directories or both should be allowed.
* added graph node for grouping nodes with separate sub-layout
* group nodes show name in top left corner
* clicking on single edge activates source locations of all edges
* removed separate setters for token components
* fixed text nodes missing or too many in list layout
* moved simple row and column layouts to ListLayouter
* added skewed layout type to ListLayouter
fortune cookie message = Sometimes you should have the courage and risk something.
* code annotations are loaded after showing the code file
* added traces
* refactored highlighter
* fixed error tooltip style in codeview
fortune cookie message = It's not the time that counts, but what you do with it.
* updated company name from "Coati Software OG" to "Coati Software KG"
* explained the "floating license" model in greater detail
* switched to display the amount of authorized users as "users" instead of "seats" in activation key
* extended the GRANT to explicitly mention that Sourcetrail can be installed on "any number of PCs"
* extended the GRANT to explicitly mention that Sourcetrail's commandline API may be used without entering an activation key
* extended the GRANT to explicitly mention that graph images exported from Sourcetrail may be used and published by the user
* added some more general details on "Severability", "Headings" and "No Waiver"
* fixed non-ascii characters not working in normal symbol search
* implemented support for non-ascii characters in fulltext search
* fixed fulltext search not working for symbols with lowest and highest character codes in a file
* using wstring in FullTextSearchIndex (causes this index to be dependent on text encoding selected in app settings)
* implemented rebuilding FullTextSearchIndex if used text encoding changed in app settings
* added utility lib
* use wstring in symbol and bookmark names
* fixed setting apppath in windows includes
* regard utf8 encoding in shared indexer commands
* regard utf8 encoding in shared indexer status
* removed header paths from VS Project setup message since VS doesn't send these anymore
* implemented using wstring in IDE communication
* fixed retrieving filepaths from QtDirectoryListbox that contain special characters
* use wstring for source extensions
* added special character as file extension to FileManagerTestSuite
* used wstring in FilePath constructor where easily possible
* added FilePath concatenate method that accepts string parameter
* implemented using only wstring in MessageStatus
* used wstring in config
* don't reset filepath used to open file picker dialog for SaveFileDialog
* don't reset filepath used to open filepicker for OpenProject dialog
* fixed non-native file picker starts in wrong directory if provided with filename to open (instead of directory)
* fixed non-native dialog displays machines root directory if empty path is provided
* also search for include paths of include directives extracted from header search paths
* extracted logic to gather unsolved includes
* extracted some code to filetree class
* fixed gaps in code view line indication for different fonts
* only allow latin fonts in fontpicker
* don't show 'files to clear' for full refresh
* fixed screen scale settings were visible on all platforms
* implemented detecting if Sourcetrail runs as installed version by checking if user folder exists next to exe
* removed "deploy"-flag mechanism for windows builds
* moved code to set the app path for windows builds to includesWindows.h
* implemented functions in setup bash script to copy dlls
* bash functions for installer and portable packaging
* Set environment variables QT_AUTO_SCREEN_SCALE_FACTOR and QT_SCALE_FACTOR on Linux on app start
* Added ScreenAutoScaling and ScreenScaleFactor to ApplicationSettings with dropdown boxes in the preferences
only visible on Linux
* Removed QtFontPicker and QtTextEncodingPicker
* Moved logging into preferences category "output"
fortune cookie message = You will have a peace of mind when you talk to an old friend
* removed "unknown" source group status type and implemented falling back to
"disabled", because "unknown" should not be handled anywhere in the rest of
the code base.
* added source group status (enabled/disabled)
* fixed bug where the removal of an indexed directory has not affected the files to clear
* added lots of const and override keywords in SourceGroupSettings
* changed order of compiler flags for CDB indexer commands so that manually added flags are appended to the flags form the compile command.
* removed usage of clang::tooling::FixedCompilationDatabase and used CompilationDatabaseSingle for empty and cdb indexer commands.
* removed reference to a specific clang tool (e.g. "cl" or "cl.exe") from compile command and prepended "clang-tool" before running the indexer.
* screen search matches in code view single not always cleared
* fixed copy full path in file title button broken
* fixed last snippet scrollbar not immediatly visible
* fixed dock title buttons on bottom on Windows
* fixed no gap between buttons on Linux
* fixed dark scheme title bar contrast
* fixed filter checkbox colors for dark schemes
* Added alternative tracer implementation that only stores an accumulation of trace
events. This is useful for handling large amounts of traced events.
* some parts of the indexer were called "manual" while others used the
name "empty". renamed everything that was called "manual" to "empty"
to conform to names in GUI
* implemented CxxDeclName constructors that just move the members
* removed empty destructors because they disable default move constructors
* removed some unnecessary code
* replaced ".size() == 0" with ".empty()" because it's more explicit
* improves indexing performance by roughly 5%
* switched to use uniqu_ptr for boost path to get rid of including boost in header
* added different methods to change the current FilePath or to make a copy and change that one
* used these methods appropriately throughout the code base
* removed exists() method from FileSystem because it is already contained in FilePath
* added const in some places
* removed post processing for anonymous typedefs. The storage transformation did not work in
cases where the typedef is recorded in a previously indexed header. No type information
was recorded while indexing the header a second time. But this type information would have
been required by the transformation.
* switch back to snippet view with snippet button in file title bar
* use new title bar widget in single view as well
* restore view mode on undo, store current view mode for every message id (added id to message)
* treat view mode switch as adapt message on undo stack
* fixed crash after snippet expansion
* fixed hatching in file title not shown
* Show title bar at top of snippet list if first file is cut off
* Show scrollbar at bottom of snippet list if last snippet if cut off and horizontally scrollable
* Extended scrollRequest API to different ScrollTarget modes
* Fixed snippet extension broken if maximized first
* Split off title bar functionality to separate class QtCodeFileTitleBar
* slightly darker function color in code for bright scheme
* fixed title offset in indexing progress dialog
* show progress dialog while starting indexers
* fixed text covered by flag in finish indexing dialog
* added and used QtFilesAndDirectoriesDialog in file list boxes for windows and linux
* implemented allowing to select multiple entries which adds more rows to the path listbox
* added radio buttons to start indexing dialog
* don't block task scheduler thread while start indexing dialog is visible
* don't force whole project refresh on settings change
* added help button to start indexing dialog explaining indexing modes
* disable unavailable modes when project needs full refresh
* improved label texts on indexing dialogs
* added --incomplete flag to index command of commandline API
* fixed deletion of window stack elements
* added CanonicalFilePathCache to also reserve the initially recorded casing of file names
* use canonical file path cache to resolve filepaths in names of symbols (anonymous, static, ...)
* null reference fixes
* added help button next to filters in error table
* added menu action Help -> Fixing Errors
* added help button on indexing dialog
* show help message after first time indexing with errors, if not seen already
* fixed recording template member specializations of methods as explicit nodes
* fixed template members variables sometimes recorded as functions with call edges
* fixed clicking on search element did not focus search bar
* fixed moving cursor between elements
* no smart pointers for search elements to fix deletion issues
* adjusted some help texts
* moved exclude paths and source file extensions contents to indexed paths selection in project setup wizard
* removed compiler flags from CDB project setup wizard
* added wizard content that shows some info text regarding the purpose of source groups
* renamed ContentSummary to ContentGroup
* fixed issue with CompilationDatabase include path extraction
* Added non-commercial use option to enter license window
* Show enter license window on first start and force license selection
* Added ApplicationSettings migration that removed private/academic license and switches user to non-commercial mode
* Added commandline option to choose non-commercial use and provide better hints to license selection
* Removed trial mode
fortune cookie message = A secret admirer will soon send you a sign of affection.
* init updatecheck ui with "checking for update..." to counter the effect of the timer start delay
* removed message box telling the user "everything is ok" after manual (forced) update check
* split header search path detector for VS into 2 different classes (one for VS2010 - VS2015 and one for VS2017)
* implemented detecting "ucrt" path for windows global headers
* indexer processes wait if already too many storages queued
* storage fetcher waits if already too many storages queued
* increased size estimation for shared memory of indexer commands
* Added MessageFilterNewErrors to combine messages for new errors
bug id = 471
* renamed scripts
* moved install, uninstall, deleteConfig scripts to top-level
* fixed desktop file not recognized on installation, only on restart
* removed Eula accept from install script
* abort install and uninstall when not running as root
* revised README
* changed ControllerProxy to template class
* allow passing method pointers and arguments to ControllerProxy
* replaced some messages with ControllerProxy calls
* moved logic from BookmarkView into BookmarkController
* added implementation for Gradle project setup (icon is still missing)
* refactored project loading/saving and SourceGroupSettings
* removed long deprecated Cxx UseSourcePathsForHeaderSearch option
fortune cookie message = There is true and sincere friendship between you and your friends.
* Use menu action "Edit -> Find in View" or Ctrl + D
* UI displayed as search bar at bottom of main window
* Hide search bar with ECS or close button
* Entering a query searches in name of graph nodes and code contents of code view
* Use Enter to iterate through matches, well move match into view in graph and code view
* Checkboxes allow for adding/removing results for certain views
* Create Bookmark shortcut is now CTRL + S
bug id = 79
* implemented recording template member specialitation relations for fields, static variables, member classes and enums
* added windows only tests that index whole projects (Bullet & Box2D) to prevent regression
* omit visiting a type in the name of a CxxDestructorDecl (which recorded a type reference)
* fixed range of names for Cxx destructors and overleaded operators.
* process more results
* fixed max results best score length
* fixed name shortening of template arguments
* fixed best results caching
* increased consecutive letter score
* fixed java indexer to continue working when a dependency path does not exist
* updated JavSymbolSolver with a lot of fixes for solving types that are defined inside jar files
* caching ccache and maven folder on ci
* new docker images st4ll1 -> coatisoftware
* in build script run setup script if no build/Release folder does not
exist
* changed commandline options to match the new format
* fixed 64bit package having no vscode plugin folder
* removed unnecessary reminders about the VS plugin
* fixed Sourcetrail being stuck while closing the application
* building Sourcetrail as Console application by default
* hiding console during runtime on Windows if Sourcetrail is started with GUI
* fixed section mentioning hatched elements in tutorial
* mention call/inheritance graphs in tutorial
* added new tut files to windows deployment package
get rid of most clazy warnings (https://github.com/KDE/clazy)
* range loop use refs
* qcolor ctor with ints
* missing Q_OBJECT macro
* use .constfirst instead of .first
enabled ccache for unix systems for fasterr recompiling
* if ccache is in path we use it now
* improved color scheme contrasts
* fixed code view single not updated to font size change
* fixed tooltip shown when hovering error location
* fixed previous reference count shown when fulltext search has no results
* fixed comment locations have been saved to wrong database table
* fixed usage of tryGetRealPathName on windows
* used real filename in PreprocessorCallbacks, DiagnosticsConsumer and CommentHandler
* fixed crash in IncludeValidation when only one source file was checked
Allows for defining specific target triple of architecture, vendor, OS and environment as set of dropdown lists
in CXX source group setup.
bug id = 370
* connects to https://www.sourcetrail.com/api/v1/versions/latest
* sends information about OS, platform, license type, current version and a unique user token
* Automatic update check is enabled via Startscreen and performed once every 24 hours on window focus
* Update check can be forced by clicking on "check for new version" on start screen
* renamed TimePoint to TimeStamp
fortune cookie message = In Träumen und im Leben ist nichts unmöglich.
* update JavaSymbolSolver to version 0.6.0
* moved to Javaparser 3.3.0
* fixed solving type parameter names in symbols solved in jar files
* implemented ignoring name contexts in javassist and jre based method signatures to break infinite recursion
* improved comment colors in all color schemes
* improved contrasts for dark color scheme
* fixed error locations stay visible when activating file in single file view
* removed scroll speed change listener from search autocompletion because it caused slowdown on macOS
* fixed bounding rects of graph edges to contain arrow
* fixed tooltip list shown with just one element
Before indexing the indexer commands are sorted according to byte size of the
indexed source file. Afterwards the list is split into two halves and each half
is shuffled. This ensures that bigger files tend to be indexed first, so that
no indexer thread runs idle at the end of indexing.
* set code font size as pixel value
* properly hide line number area for overview stats in both snippets and single file view
* fixed file title disabled for files in single file view in trial mode
* Tooltips show node type with access specifier, reference count and fully qualified name
* Fields and global variables include the type name
* Methods and functinos show whole signature. Gets broken into multiple lines if too long.
Included changes:
* Upgraded to C++14
* fixed clang warnings
* Pass location of .srctrlprj file to build.sh script to load on launch
* Split off QtCodeField for showing highlighted and annotated code fom QtCodeArea
* removed TokenComponentSignature
* added TaskDecoratorDelay
bug id = 195
* implemented this feature for both, CXX and Java
* adjusted tests to reflect these changes
* added NameElement and NameHierarchy to Java code
* created more specialized JavaDeclName classes: JavaFunctionDeclName and JavaVariableDeclName
* implemented recording static modifier for Java methods and variables
fortune cookie message = You will enjoy true success in whatever you do.
* moved storage related classes to data/storage folder
* implemented recording c++ unions as NODE_UNION instead of just using NODE_TYPE
* added transformation to merge anonymous classes/structs/enums/unions and typedef nodes
* added tests for this transformation
* added setting for enabling/disabling this transformation
* switched from using BOOST_159_DIR to using BOOST_DIR
* changed windows configuration of boost to remove requirement of duplicating all include files.
* add inheritance edges between parents of active symbol and other visible symbols
* add dashed inheritance edges when symbols are no direct decendants
* inheritance edges are also respected in layouting, putting base/derived classes in the correct top/bottom spot now
bug id = 167
* faster hierarchy cache building
* cache symbol definition kinds
* don't request files when caches can be used
* save SearchEdge by starting character in SearchNode to avoid iteration when adding to SearchIndex
* fixed disabled state of some search buttons
* fixed error columns are not saved to database correctly
* implemented setting JRE System Library paths in app settings
* added detector for JRE System Library that not use Java Runtime specified in AppSettings but detects JRE on its own by reusing the JavaPathDetector.
* added option to use JRE System Library in JavaSourceGroup
* moved SourcetrailPlugin to separate GitHub repository: https://github.com/CoatiSoftware/vs-sourcetrail
* changed Readme in ide_plugins folder to point to that repo and give instructions on how to install
* removed vsix from windows package
* renamed SourcetrailPlugin project to SourcetrailExtension
* changed assembly name to vs-sourcetrail
* removed plugin install script because the tests now use a configured experimental instance of Visual Studio
* added license file for cinder solution that is used in plugin integration tests
* replace license file with apache license
* added boilerplate notice of Apache License 2 to source files of plugin
* Show font size change as number not percent
* Show current graph zoom in label next to zoom buttons
* Fixed search blocks not properly updated when fonts size changes
* setting value for JAVA_HOME variable automatically before executing Maven if not found in system environment.
* show error dialog when maven encounters an error while fetching source directories from pom
* added logging when fetching maven source directories from pom
* changed windows installer to discard the first two digits of the version (17 instead of 2017)
* renamed vs plugin installer
* add game_object.h for TicTacToe to windows installer
* add eula.txt for eula window and keyboard shortcuts css to installer
* add eula and 3rd party licenses to windows install directory
* clear references count when clearing code view
* fixed scrolling to character in overview lists
* fixed aggregation activation shown in history menu
* fixed same snippet being added twice
* Sourcetrail [Trial] as window title
* fixed undoing trail expand will always reactivate symbol
* corrections in estimating size of intermediate indexer commands
* avoided clearing and refilling the indexed files list every time files get added
* changed memory growth policy of InterprocessIndexingStatusManager to double allocated memory when it gets full
* added potential to grow memory when adding crashed file paths
* reduced file open/close events while writing cdb
* fixed detection of header paths
* refactored Visual Studio extension code
* removed very old menu option for converting a solution directly into a Coati project (which would have been performed by Coati itself, not by the plugin).
* disable drop in qtlineedit
fixes bug where when file is dropped in the lineedit with text,
the the file will be added as text midst the existing text
* move message to start from script before layout loading so it will load right
(only when started without script on linux)
* center subwindow when mainwindow size changes
* added testsettings file that causes Visual Studio to use the current build of the
extension when running the integration tests. So no more uninstalling and installing
of the extension before running the tests.
* Show declname in java import error
* Don't clear window stack when saving preferences
* Fixed spacing in source group UI, status view and error view
* Resize graph scene rect when widget is resized
* Graph node centering respect no animation preference
* Fixed undoing of view commands
* Avoid scrollbar jump when restoring graph scroll position
* Deactivate local symbols in code when clicking into empty space
* Fixed annotations in code view when showing errors
* Fixed context menu hatched for non-indexed/incomplete file button
* Fixed file minimize button losing hover style when leaving to file bar
* Fixed only change bookmark button state when active node is bookmarked
* Fixed use bezier edges when expanding node on aggregation graph
* Fixed manually expanded nodes stay expanded
* don't try to resolve an import that ends in an asterisk. these can be either type names or package names and it it's a package we have no way to find out whether or not such a package exists.
* added SubWindow flag to QtWindow to either use window decorations or show window within main window
* fixes black borders in some Linux window managers
bug id = 376
fortune cookie message = Your skill will accomplish what the force of many others cannot.
* fixed solving import for statically imported member types
* enabled recording of fatal errors when an importing a type
* added AstVisitorClient for improved abstraction and debugging purposes
* using .Net framework version 4.6.1 in all projects
* implemented exception handling in VCFileWrapperFactory
* moved logging in separate assembly
* enabled logging in wrapper code
* reduced minimized file state to one-colored block
* added hover states to file buttons
* show hover state when hovering title bar
* fixed file button use for overview stats snippet
* Use unified showCodeSnippets method for setting file information on CodeView
* Made async initial file and snippet expansion synced
* Add ScrollParams API to CodeView
* Regard scope size when scrolling to definition
* Only use QtThreadedLambdaFunctor in QtCodeView now
* changed description text of Visual Studio plugin
* changed plugin install targets to include VS 2017
* add license file with MIT license
* updated vsix for deployment
* implement wrapper for all used classes of VCProjectEngine.dll since you cannot just use the oldest version of this
assembly (see https://stackoverflow.com/questions/44288050/typecast-fails-when-visual-studio-extension-uses-reference-to-older-assembly).
* improved serialization and deserialization of compile commands and compilation databases.
* updated used JSON package
* rename CommandObject to CompileCommand
* changed implementation to keep non-existent file paths in cdb
* made methods of SolutionParser non-static
* replace spaces with tabs
* added IntegrationTests project
* configured tests to simulate a new instance of VisualStudio
* added cinder as test project for integration tests
* remove all absolute paths from expected output of integration tests
fortune cookie message = A stranger will bring great meaning to your life.
* only show up to 1000 errors in table and code view
* click button in bottom right of error table to show all
* same error order in code and table
* highlight error line when switching reference in code view
* improved error view performance
bug id = 385
* Turned QtProjectWizzard into window for Source Group ui
* Clicking into FilePicker when empty will open dialog right away
* Fixed environment variable use throughout all Source Group path values
* Moved Preferences to QtPreferencesWindow
bug id = 230
fortune cookie message = Zwischen dir und deinen Freunden besteht echte Freundschaft.
* NameHierarchy now looks like this: <delimiter>\tm<all the rest>
* made new baseclasses for SettingsMigration and SettingsMigrator
* Use the migration system for SqliteBookmarkStorage as well
* handling all messages in parallel caused UI synchronization issues
* for now the only message that requests to be handled in parallel is MessageActivateTokens
* set unrestricted permissions on shared memory allocation to fix crash on Windows
* log exceptions during shared memory creation and destruction
* create SharedMemoryGarbageCollector after logging was enabled
* holding down back or forward button shows list of current back-forward stack
* added narrow button between back and forward to show the list
* added History menu
* moved back and forward actions to History menu
* show chronological list of recently active symbols in History menu
bug id = 151
fortune cookie message = Dein Geschäft wird gut laufen und expandieren.
If you like this project and want to get involved, there are lots of ways you can help:
* __Spread the word.__ The more people want this project to grow, the greater the motivation for the developers to get things done.
* __Fund the development.__ Further development and maintainance of this project is crowd funded via [Patreon](https://www.patreon.com/sourcetrail). If you would like Sourcetrail to grow and improve but cannot spare the time to contribute your self, please consider making a pledge.
* __Test Sourcetrail.__ Run it on your own source code. If you find any issues, just report it here. Best, include some detailed step-by-step instructions that illustrate how to reproduce the issue, so that we can use it as a basis to craft a test case for our continuous integration and no one will ever break that case again.
* __Write some code.__ Don't be shy here. You can implement whole new features or fix some bugs, but you can also do some refactoring if you think that it benefits the readability or the maintainability of the code. Still, no matter if you just want to work on cosmetics or implement new features, it would be best if you create an issue here on the issue tracker before you actually start handing in pull requests, so that we can discuss those changes first and thus raise the probability that those changes will get pulled quickly.
To create a pull request, follow these steps:
* Fork the Repo on GitHub.
* Make your commits.
* If you added functionality or fixed a bug, please add a test.
[Sourcetrail](https://www.sourcetrail.com/) is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code.
* Clang & LLVM 3.9 (doesnt quite work for windows, use unix setup below and skip all the ninja stuff)(installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
The ongoing development and regular software releases are made possible entirely by the support of [these awesome patrons](SPONSORS.md)! If you'd like to join them, please consider [becoming a patron](https://www.patreon.com/sourcetrail) of Sourcetrail.
For Windows:
Execute Cmake twice (once for each target compiler (32 and 64 bit)). Set the respective build path to ${CLANG_DIR}/build_win32 or ${CLANG_DIR}/build_win64
## Using Sourcetrail
##### Boost setup
To setup Sourcetrail on your machine, you can either download the respective build for your operating system from our list of [Releases](https://www.sourcetrail.com/downloads) and install it on your machine, or use one of the following package managers:
For Windows:
Build the Boost libs for 32 and 64 bit. Create the subdirectories ${BOOST_159_DIR}/win32 and ${BOOST_159_DIR}/win64 and copy the ${BOOST_159_DIR}/boost folder into each of those platform specific directories. Also move the platform specific libs into the respective ( ${BOOST_159_DIR}/win32/lib and ${BOOST_159_DIR}/win64/lib) folder.
* Use the [Chocolatey package](https://chocolatey.org/packages/sourcetrail) with `choco install sourcetrail`
##### Botan setup
After your installation is complete, follow our [Quick Start Guide](https://www.sourcetrail.com/documentation/#QUICKSTARTGUIDE) to get to know Sourcetrail.
For Windows
## How to Report Issues
Extract the contents of your Botan package into "${BOTAN_DIR}/win32". Duplicate that folder and rename it "win64".
You can post all your feature requests and bug reports on our [issue tracker](https://github.com/CoatiSoftware/Sourcetrail/issues).
Build 32 bit debug lib in ${BOTAN_DIR}/win32/debug
If you want to support a certain feature request or you have the same bug that another user already reported, please let us know:
* post a comment with "+1" to the issue
* or send an email to support@sourcetrail.com with the issue ID
For MacOS and Linux
## How to Contribute
Build release lib in ${BOTAN_DIR}/release
Build debug lib in ${BOTAN_DIR}/debug
* Please read and follow the steps in [CONTRIBUTING.md](CONTRIBUTING.md) file.
* You may want to look out for issues labeled [good first issue](https://github.com/CoatiSoftware/Sourcetrail/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) to find some initial tasks to tackle.
* If you are looking for more information about Sourcetrail software development, please refer to our [wiki](https://github.com/CoatiSoftware/Sourcetrail/wiki).
Building Sourcetrail requires several dependencies to be in place on your machine. However, our CMake based setup allows to disable indexing support for specific languages which reduces the number of dependencies to a minimum.
#### Settings
## Building the Base Application
Run setup script:
$ ./script/setup.sh
### Required Tools
### Release
* __CMake v3.12 (required for Windows, Linux and MacOS)__
* __Reason__: Used to generate a build configuration for your build system
* __Download__: https://cmake.org/download
#### App
* create release build
* make sure it uses the Sourcetrail icon
* obfuscate the executable using upx
* __Git (required for Windows, Linux and MacOS)__
* __Reason__: Used for version control and to automatically generate the Sourcetrail version number from commits and tags
* __Download__: https://git-scm.com/download
* __Remarks__: Make sure `git` is added to your `PATH` environment variable before running CMake
#### Data folder
* put data folder in working directory
* add empty log folder
* add working tictactoe.xml project to /projects/tictactoe with sources in /projects/tictactoe/src
* add empty app settings with one recent project tictactoe.xml
* leave window_settings.ini with correct Sourcetrail start layout
_Hint: If you are using the CMake GUI, we recommend that you activate advanced mode. Also you may be required to add some of the defines via the "Add Entry" button._
* Added option to disable UI animations to preferences
* Graph: Removed double line around graph view on Mac
* Graph: Fixed namespace label cut off at edge of screen
* Code: Added single file view mode
* Code: Added navigation bar with mode toggle and buttons to navigate references
* Graph: Removed underscores in edge hover names
* Infere some non-indexed node types by their edges
#### 0.10.0
released 2016-12-13
* Windows: Added runtime DLLs that could be missing on some systems
* Click message in status bar to open status window
* Graph: Sort nodes alphabetically within each section
* Graph: Aggregate type use edges to make referencing nodes appear collapsed
* Code: Improved performance through faster source location retrieval for files
* Code: Scroll active symbol definition to top of view if possible
* Added status tab to Log View showing status bar information
* Graph: Fixed graph animation used when clicking edges
* Graph: Disable bundling when files or macros are active
* Graph: Bundle importing files of active symbol in Java projects
* Improved speed of depending file search on refresh
* Search: Fixed crashes related to empty searches (issue #251)
* Search: Do fulltext search when no autocompletion match is available
* Added checkbox for full project refresh to start indexing dialog
* Disabled clang error limit by default to make sure all errors are shown
* Linux: Updated libs and added missing ones (issue #245)
* Updated icons for some graph nodes and project types
* Windows: Updated Visual Studio plugin UI
* Graph: Fixed view to not recenter on active node when clicking edge
* Fixed wrong errors displayed, wrong error counts and error view being wrongly shown
* Removed font zoom on CTRL + MouseWheel
* Graph: Display namespace information on left side of nodes, activate namespace by clicking label
* Improved file clearing performance
* Windows: Changed setup folder layout
* Added info screen for indexer crash investigation
* Code: Fixed display of links to missing symbols in project description
* Code: Fixed snippet size calculation causing a slowdown in certain cases
* Search: Skip intermediate autocompletions when typing fast
* Show dialog for last files inserted into .coatidb at end of indexing
* Integrated Visual Studio Plugin with Coati Project creation and removed previous Visual Studio Solution parser
* Improved C++ indexer coverage: using decls, using directives, auto keyword, lambda signatures, symbol references inside lambda captures, template argument related elements
* Reduced size of .coatidb file by up to 50% for large projects
* Fixed anonymouse symbol name conflicts (issue #241)
* Preferences: Added Indexer Logging option to print AST information during indexing
* Search: Added second line to search autocompletion list showing namespace, package or filepath
* Made cells readonly in errors table to prevent editing (issue #236)
* Renamed Log Window to Status window
#### 0.9.23
released 2016-10-27
* Windows: Added logging and exception handling to VS plugin
* Windows: Added VC++ runtime dlls for windows installer
* Run Sourcetrail from within the build directory. During execution Sourcetrail needs resources from `bin/app/data` and `bin/app/user`. CMake creates symlinks within the build directory that make these directories accessible.
## Enable C/C++ Language Support
### Required dependencies
* __LLVM/Clang 11.0.0__
* __Reason__: Used for running the preprocessor on the indexedes source code, building and traversing an Abstract Syntax Tree and generating error messages.
* __Building__: Make sure to check out the correct tag: `git checkout llvmorg-11.0.0`
* __Building for Windows__: Follow [these steps](https://clang.llvm.org/get_started.html) to build the project. Run the cmake command exactly as described.
* __Building for Unix__: Follow this [installation guide](http://clang.llvm.org/docs/LibASTMatchersTutorial.html) to build the project. Make sure to build with `-DLLVM_ENABLE_RTTI=ON`.
### Building
* Run CMake with these additional options:
```
-DClang_DIR=<path/to/llvm_build>/lib/cmake/clang
-DBUILD_CXX_LANGUAGE_PACKAGE=ON
```
* Build Sourcetrail as described [above](#building).
## Enable Java Language Support
### Required dependencies
* __JDK 1.8__
* __Reason__: Used to build the Java indexer and make it callable from the C++ code via JNI.
* __Remarks__: Make sure that `<jdk_root>/bin` is available in your `PATH` environmen variable and that the `JAVA_HOME` environment variable is set:
```
JAVA_HOME=<path/to/Java>/jdk1.x.x_xxx
```
* __Maven__
* __REASON__: Used within Sourcetrail's automated tests.
* __Remarks__: Make sure `.../apache-maven-x.x.x/bin` is available in your `PATH` environmen variable and that both `M2_HOME` and `MAVEN_HOME` environment variables are set:
```
M2_HOME=.../apache-maven-x.x.x
MAVEN_HOME=.../apache-maven-x.x.x
```
### Building
* Run CMake with these additional options:
```
-DBUILD_JAVA_LANGUAGE_PACKAGE=ON
```
* Build Sourcetrail as described [above](#building).
## Enable Python Language Support
### Required Tools
* __7z (required for Windows)__
* __REASON__: Used to extract the prebuilt SourcetrailPythonIndexer which is downloaded automatically during build execution.
### Building
* Run CMake with these additional options:
```
-DBUILD_PYTHON_LANGUAGE_PACKAGE=ON
```
* Build Sourcetrail as described [above](#building).
## Creating the deployment Package
### Windows
#### Required Tools
* __Visual Studio (required for Windows)__
* __Reason__: Used for building the Sourcetrail Windows installer.
* __Remarks__: Make sure to install the `.Net desktop development` workload.
* __Reason__: Used for indexing the java sample project that ships with the package.
* __WinRAR__
* __Reason__: Used for creating the final zip files for the installer and the portable package.
* __Remarks__: Make sure to add `<path/to>/WinRAR` to your `PATH` environment variable.
#### Building
* Run `./script/deploy_windows.sh` from your Developer Command Prompt for Visual Studio. The script which will generate a 64bit build and packages it into a portable `.zip` file and a Wix-based Windows installer, each.
### macOS
After building, run the `bundle_install.sh` script within the build directory which will create a `Sourcetrail.app` bundle and generate a `Sourcetrail_<version>.dmg` container.
### Linux
Run `./setup/Linux/createPackages.sh` from the main directory, which creates both a `.tar.gz` and a `.AppImage` package in the main directory. Packaging depends on [linuxdeployqt](https://github.com/probonopd/linuxdeployqt).
# How to Run the Tests
The automated test suite of Sourcetrail is powered by [Catch2](https://github.com/catchorg/Catch2). To run the tests, simply execute the `Sourcetrail_test` binary. Before executing, please make sure to set the working directory to `./bin/test`.
# License
Sourcetrail is licensed under the [GNU General Public License Version 3](LICENSE.txt).
# Trademark
The "Sourcetrail" name is a trademark owned by Coati Software and is not included within the assets licensed under the GNU GPLv3.
1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party.
1.1. ''Contributor'' means each entity that creates or contributes to the creation of Modifications.
1.2. ''Contributor Version'' means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.
1.3. ''Covered Code'' means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.
1.4. ''Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data.
1.5. ''Executable'' means Covered Code in any form other than Source Code.
1.6. ''Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.
1.7. ''Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.
1.8. ''License'' means this document.
1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
1.9. ''Modifications'' means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is:
A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or previous Modifications.
1.10. ''Original Code'' means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.
1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
1.11. ''Source Code'' means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.
1.12. "You'' (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You'' includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control'' means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and
(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof).
(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license
(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code.
(d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL'' which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.
(b) Contributor APIs.
If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Netscape Communications Corporation (''Netscape'') may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License.
6.3. Derivative Works.
If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL", ''NPL'' or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that:
(a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above.
(b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant.
8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.
8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a ''commercial item,'' as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and ''commercial computer software documentation,'' as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.
12. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
13. MULTIPLE-LICENSED CODE.
Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the MPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A.
EXHIBIT A -Mozilla Public License.
The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
ANY KIND, either express or implied. See the License for the specific language governing rights and
limitations under the License.
The Original Code is Javassist.
The Initial Developer of the Original Code is Shigeru Chiba. Portions created by the Initial Developer are
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
Contributor(s): __Bill Burke, Jason T. Greene______________.
Alternatively, the contents of this software may be used under the terms of the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), or the Apache License Version 2.0 (the "AL"), in which case the provisions of the LGPL or the AL are applicable instead of those above. If you wish to allow use of your version of this software only under the terms of either the LGPL or the AL, and not to allow others to use your version of this software under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the LGPL or the AL. If you do not delete the provisions above, a recipient may use your version of this software under the terms of any one of the MPL, the LGPL or the AL.
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq0{\*\panose 00000000000000000000}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f381\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f382\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f384\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f385\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f388\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\f438\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f439\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
No Spacing;}}{\*\listtable{\list\listtemplateid-237996820\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}\hres0\chhres0 }{\listname ;}\listid-2}
70450}{\propname _NewReviewCycle}\proptype30{\staticval }{\propname _EmailSubject}\proptype30{\staticval Request for evaluation license and details of third party software}{\propname _AuthorEmail}\proptype30{\staticval mrae@qti.qualcomm.com}{\propname _Au
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14043460 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 BY INSTALLING OR USING THIS SOFTWARE, YOU ARE
BECOMING A PARTY TO, AND ARE CONSENTING TO BE BOUND BY, THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, DO NOT INSTALL OR USE THIS SOFTWARE.
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 A major version of Sourcetrail in executable form. The major
version is defined by the leading number of the version string (e.g. th}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid9331093\charrsid5327097 e major version of Sourcetrail 1.x.x}{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 is version 1);
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 documentation for that major version of Sourcetrail;
minor updates included in software maintenance which are indicated by an increase in the numbers that follow the major version number (e.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid9331093\charrsid5327097
g. the update from Sourcetrail 1.0.0 to Sourcetrail 1.1.0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 ).
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 Coati Software OG, having a place of business at }{\rtlch\fcs1
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid13005862 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid14825363\charrsid5327097 the individual who purch}{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid8484554\charrsid5327097 ased a License(s) for the Software;}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid14825363\charrsid5327097 }{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 who was granted a Test }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid13005862\charrsid5327097 License(s) for the Software;
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid14825363 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid14825363\charrsid5327097 the company, corporation, or organization }{\rtlch\fcs1
\af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 that was granted a Test }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid13005862\charrsid5327097 License(s) for the Software}{\rtlch\fcs1
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 the name of the Licensee, the kind of lice
nse, the major version of the }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 S}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 oftware that is licensed, and a hash}{
\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 -}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 code; the combination of these values allows the Licensee to activate}{
\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid7799561\charrsid5327097 the full functionality of}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 a genuine copy of the Software.
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid5327097 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 the
individual who purchased a License(s) for the Software; the individ}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 ual is the only Authorized User;}{\rtlch\fcs1 \af37 \ltrch\fcs0
the individual who was granted a Test License(s) for the Software; }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097
the individ}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 ual is the only Authorized User;}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097
an employee or independent contractor who might at any time use the Software, of the company, corporation, or organization that purchased a License(s) for the Software; an entity has one Authorized User for each License purchased;
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid5327097 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 a
n employee or independent contractor who might at any time use the Software, of the company, corporation, or organization }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 was granted}{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 a }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 Test }{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid5327097\charrsid5327097 License(s) for the Software; an entity has one Authorized }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid5327097 User for each License purchased.}{\rtlch\fcs1
Subject to the terms of this Agreement, the Licensor hereby grants the Licensee a non-transferable, non-exclusive, non-sub-licensable, limited license that allows:
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 Authorized Us
er(s) to install the licensed version of the Software on computer PCs where potential use of the Software is restricted exclusively to Authorized User(s);
\f37\lang1033\langfe1033\langnp1033\insrsid5327097 e the Software on computer PCs and }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 in virtual machines}{\rtlch\fcs1 \af37 \ltrch\fcs0
In case the Licensee of the software is a company, corporation, or organization the Licensor has the right to mention this usage of the Software on its own website.
, translate, reverse engineer, decompile, disassemble (except to the extent applicable laws specifically prohibit such restriction), create derivative works based on, or otherwise attempt to discover the source code or underlying ideas or algorithms of th
\pnlvlblt\ilvl0\ls1\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls1\rin0\lin720\itap0\pararsid3763068 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 remove any proprietary notices or labels from the Software.
\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid8913734\charrsid5327097 will not, and will have no right to:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068
\par }{\rtlch\fcs1 \ab\af37 \ltrch\fcs0 \b\f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 TITLE AND COPYRIGHT}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097
\par Title, ownership rights, intellectual property rights, and copyright to the Software, and any copies or portions thereof, shall remain in Licensor. The Software is protected by European copyright directives, Austrian copyright laws as well as United State
s copyright laws and international treaty provisions.
\par DISCLAIMER OF WARRANTY}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097
\par THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND. LICENSOR HEREBY DISCLAIMS ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILI
TY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT. SOME U.S. STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. LICENSE
E MAY HAVE OTHER LEGAL RIGHTS THAT VARY FROM STATE TO STATE OR BY JURISDICTION.
\par LICENSEE ASSUMES THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. LICENSOR ASSUMES NO LIABILITY FOR THE COST OF ANY SERVICE OR REPAIR
IF THE SOFTWARE IS DEFECTIVE. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE, SHALL LICENSOR, OR ITS LICENSORS, SUPPLIERS OR RESELLERS, BE LIABLE TO LICENSEE OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL,
I
NCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES. IN NO EVENT WILL LICENSOR BE
LIABLE FOR ANY DAMAGES IN EXCESS OF THE MONEY PAID FOR THE SOFTWARE, EVEN IF LICENSOR SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR
PERSONAL INJURY TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. FURTHERMORE, SOME U.S. STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT APPLY TO LICENSEE.
he license granted herein shall be perpetual. If Licensee fails to comply with any of the terms of this Agreement, this Agreement and the rights granted herein will terminate immediately. Licensor may, at its sole discretion and at any time, terminate thi
s Agreement. On termination, Licensee must cease using and destroy all copies of the Software.
\par Licensee shall comply with all export laws, restrictions and regulations of the United States, the Directive 2009/428/EC of the European Parliament and of the Council and the Austrian Au\'df
enwirtschaftsgesetz 2011, BGBl I No. 26/2011. Licensee shall not export, re-export or otherwise transfer the Software to any country for which the United States or the European Union or Austria maintains an embargo
, or to any person or entity on the U.S. Department of Treasury List of Specially Designated Nationals or the U.S. Department of Commerce Denied Persons List or Entity List. Licensee represents and warrants that licensee is not located in, under the contr
ol of, or a national or resident of any restricted country or on any such list.
\par
\par }{\rtlch\fcs1 \ab\af37 \ltrch\fcs0 \b\f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 THIRD PARTY CREDITS}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097
\par Portions of the Software utilize or include third party software and other copyrighted materials. Credits, licensing terms, and disclaimers for such materials are contained in the installation directory for the Software, and are accessible via the \'93}{
\par This Agreement represents the complete agreement concerning this }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid13784877\charrsid5327097 Software}{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 between the parties and supersedes all prior agreements and representations between them. It may
be amended only in writing executed by both parties. Coati Software OG reserves the exclusive right to periodically update this }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid8353839 Agreement}{\rtlch\fcs1 \af37 \ltrch\fcs0
\f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 at its discretion at any time, with reasonable notice to you by posting the new }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid8353839 Agreement}{\rtlch\fcs1
\af37 \ltrch\fcs0 \f37\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 at the following URL: }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\ul\cf2\lang1033\langfe1033\langnp1033\insrsid3763068\charrsid5327097 <http://www.sourcetrail.com/>}{\rtlch\fcs1
. Any action arising out of or relating to this Agreement may be brought exclusively in Salzburg, Austria, and Coati Software OG and you irrevocably consent to the jurisdiction of such courts and venue in Salzburg, Austria.
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;
BY INSTALLING OR USING THIS SOFTWARE, YOU ARE BECOMING A PARTY TO, AND ARE CONSENTING TO BE BOUND BY, THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, DO NOT INSTALL OR USE THIS SOFTWARE.
DEFINITIONS
"Software" means:
• A major version of Sourcetrail in executable form. The major version is defined by the leading number of the version string (e.g. the major version of Sourcetrail 1.x.x is version 1);
• documentation for that major version of Sourcetrail;
• minor updates included in software maintenance which are indicated by an increase in the numbers that follow the major version number (e.g. the update from Sourcetrail 1.0.0 to Sourcetrail 1.1.0).
"Licensor" means:
• Coati Software OG, having a place of business at Jakob-Haringer-Straße 1/127, 5020 Salzburg, Austria.
"Licensee" means:
• the individual who purchased a License(s) for the Software;
• the individual who was granted a Test License(s) for the Software;
• the individual evaluating the Software in trial mode;
• the company, corporation, or organization that purchased a License(s) for the Software;
• the company, corporation, or organization that was granted a Test License(s) for the Software.
"Activation Key" means:
• the name of the Licensee, the kind of license, the major version of the Software that is licensed, and a hash-code; the combination of these values allows the Licensee to activate the full functionality of a genuine copy of the Software.
"Authorized User" means:
• the individual who purchased a License(s) for the Software; the individual is the only Authorized User;
• the individual who was granted a Test License(s) for the Software; the individual is the only Authorized User;
• the individual evaluating the Software in trial mode;
• an employee or independent contractor who might at any time use the Software, of the company, corporation, or organization that purchased a License(s) for the Software; an entity has one Authorized User for each License purchased;
• an employee or independent contractor who might at any time use the Software, of the company, corporation, or organization was granted a Test License(s) for the Software; an entity has one Authorized User for each License purchased.
GRANT
Subject to the terms of this Agreement, the Licensor hereby grants the Licensee a non-transferable, non-exclusive, non-sub-licensable, limited license that allows:
• the Licensee to distribute (an) Activation Key(s) to Authorized User(s);
• Authorized User(s) to install the licensed version of the Software on computer PCs where potential use of the Software is restricted exclusively to Authorized User(s);
• Authorized User(s) to use the Software on computer PCs and in virtual machines.
• Licensee to make a copy of the Software for archival purposes provided the copy contains all of the proprietary notices of the Software.
• In case the Licensee of the software is a company, corporation, or organization the Licensor has the right to mention this usage of the Software on its own website.
RESTRICTIONS
Licensee will not, and will have no right to:
• distribute, use, or transfer an Activation Key(s) that has been superseded by an Activation Key(s) provided with software maintenance;
• modify, translate, reverse engineer, decompile, disassemble (except to the extent applicable laws specifically prohibit such restriction), create derivative works based on, or otherwise attempt to discover the source code or underlying ideas or algorithms of the Software;
• sell, rent, lease, distribute, or otherwise transfer rights to the Software without prior written consent from Licensor;
• remove any proprietary notices or labels from the Software.
Authorized User(s) will not, and will have no right to:
• use the trial mode of the Software for any commercial purposes;
• use a Private/Academic License of the software for any commercial purposes.
TITLE AND COPYRIGHT
Title, ownership rights, intellectual property rights, and copyright to the Software, and any copies or portions thereof, shall remain in Licensor. The Software is protected by European copyright directives, Austrian copyright laws as well as United States copyright laws and international treaty provisions.
DISCLAIMER OF WARRANTY
THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND. LICENSOR HEREBY DISCLAIMS ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT. SOME U.S. STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE. LICENSEE MAY HAVE OTHER LEGAL RIGHTS THAT VARY FROM STATE TO STATE OR BY JURISDICTION.
LIMITATION OF LIABILITY
LICENSEE ASSUMES THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. LICENSOR ASSUMES NO LIABILITY FOR THE COST OF ANY SERVICE OR REPAIR IF THE SOFTWARE IS DEFECTIVE. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE, SHALL LICENSOR, OR ITS LICENSORS, SUPPLIERS OR RESELLERS, BE LIABLE TO LICENSEE OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES. IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY DAMAGES IN EXCESS OF THE MONEY PAID FOR THE SOFTWARE, EVEN IF LICENSOR SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. FURTHERMORE, SOME U.S. STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT APPLY TO LICENSEE.
TERMINATION
The license granted herein shall be perpetual. If Licensee fails to comply with any of the terms of this Agreement, this Agreement and the rights granted herein will terminate immediately. Licensor may, at its sole discretion and at any time, terminate this Agreement. On termination, Licensee must cease using and destroy all copies of the Software.
EXPORT CONTROLS
Licensee shall comply with all export laws, restrictions and regulations of the United States, the Directive 2009/428/EC of the European Parliament and of the Council and the Austrian Außenwirtschaftsgesetz 2011, BGBl I No. 26/2011. Licensee shall not export, re-export or otherwise transfer the Software to any country for which the United States or the European Union or Austria maintains an embargo, or to any person or entity on the U.S. Department of Treasury List of Specially Designated Nationals or the U.S. Department of Commerce Denied Persons List or Entity List. Licensee represents and warrants that licensee is not located in, under the control of, or a national or resident of any restricted country or on any such list.
THIRD PARTY CREDITS
Portions of the Software utilize or include third party software and other copyrighted materials. Credits, licensing terms, and disclaimers for such materials are contained in the installation directory for the Software, and are accessible via the “3rd Party Licenses” dialog for the Software. Licensee agrees that use of such copyrighted materials is governed by their respective terms.
ENTIRE AGREEMENT
This Agreement represents the complete agreement concerning this Software between the parties and supersedes all prior agreements and representations between them. It may be amended only in writing executed by both parties. Coati Software OG reserves the exclusive right to periodically update this Agreement at its discretion at any time, with reasonable notice to you by posting the new Agreement at the following URL: <http://www.sourcetrail.com/>. Any action arising out of or relating to this Agreement may be brought exclusively in Salzburg, Austria, and Coati Software OG and you irrevocably consent to the jurisdiction of such courts and venue in Salzburg, Austria.
CONTACT
If you have questions regarding this agreement, contact:
Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.