Compare commits

...
153 Commits
Author SHA1 Message Date
Eberhard Graether eb12d3cda1 logic: Show overview of analyzed symbols after launch
* show analysed nodes as bundles in graph
* ellide node names longer than 50 chars
* sort nodes alphabetic in these bundles
* show stats of analysis in code
* error are displayed as well in overview
* added keywords overview and error
* project description can be set in .coatiproject file
* description can include links to symbols using [symbol] syntax
* updated documentation
* increased toc nesting in documentation
2016-01-25 17:02:48 +01:00
malte_langkabel 8addbb2195 src: fix crash on edit project
* fixed crash when comparing two vectors of different sizes.
2016-01-25 16:40:28 +01:00
malte_langkabel 1209d0e7c0 ui: AWS in About window
* added "funded by the AWS"
* changed about window to depend on layout which is easily modifiable
* added aws logo
2016-01-21 14:45:21 +01:00
malte_langkabel 9250360750 web: documentation
* Created a web based version of our documentation.
* Updated all the texts to reflect the current version of Coati.
2016-01-21 13:59:09 +01:00
malte_langkabel 3b62c1353e build: fixed licensing project
* fixed license includes for windows
2016-01-21 13:54:41 +01:00
Eberhard Graether 46d9825454 logic: Trim lines and remove empty ones when checking license key 2016-01-19 11:48:41 +01:00
Eberhard Graether cc2b74ccca ui: Fixed listbox line layout on Mac 2016-01-19 09:58:58 +01:00
Manuel Dobusch ed1aba8858 build: Botan include fix
Fixed CMakeLists to allow debug build
2016-01-18 17:59:46 +01:00
Eberhard Graether 503e4f185b logic: Show node with search name main after parsing 2016-01-18 16:30:38 +01:00
Andreas Stallinger f16e6b58c5 build: fix botan find_lib for linux
add NO_DEFAULT_PATH to find_library so that the search exclude botan libs installed on the system
2016-01-18 15:09:21 +01:00
Andreas Stallinger 8bbd764cfc build: different find_library for windows and unix 2016-01-18 12:40:08 +01:00
Eberhard Graether e1f29da76a script: Look for botan-1.11 in CMake setup 2016-01-18 11:42:32 +01:00
malte_langkabelandEberhard Graether 8be7886c7a build: fixed cmake for windows
* added target for the license lib.
* switched to statically linked version of boost.
* removed boost dlls from bin directories.
* cleaned up CMakeLists.
2016-01-18 11:42:32 +01:00
Eberhard Graether f3223e535a ui: Removed tooltip css from SettingsWindow 2016-01-18 11:42:31 +01:00
Eberhard Graether 2954865d41 build: fixed boost linking 2016-01-18 11:42:31 +01:00
Eberhard Graether d2f9a748ef build: Fixed keygen integration after app/trial split 2016-01-18 11:42:31 +01:00
Eberhard Graether 8197172523 ressources: added template tags to app settings template 2016-01-18 11:42:31 +01:00
Eberhard Graether 75b102a528 ui, logic: design for license ui and forcing the user to enter a key on first open
This change integrates the license key ui into the application and makes it necessary for the user to enter a correct
key. The check for a correct key is done on startup and whenever a project is loaded. The check for the key also
includes a check whether the location of the application has changed.
2016-01-18 11:42:31 +01:00
Andreas StallingerandEberhard Graether 23257a3071 build,logic : Key/License Generator
Generator using the Botan Cyrptography library
2016-01-18 11:42:31 +01:00
malte_langkabel 743f91e882 locig: refresh after edit project
* implemented saving project settings force-refreshes the project if something has changed.
* when nothing has changed while editing the project settings, the project is not refreshed anymore.
* new project window is cleared now before it is displayed.
2016-01-18 10:59:32 +01:00
Eberhard Graether 3852bb7e5c ui: Fixed error locations at line end span down to next line 2016-01-18 10:22:57 +01:00
Eberhard Graether 3884db21d7 logic: Fixed deselection of edge didn't restore active locations in code view 2016-01-15 16:21:50 +01:00
malte_langkabel ca4fb79af7 ui: fixed search navigation bug
* fixed bug where navigating backwards to a symbol that was activated using the search bar did not update the search bar's text.
2016-01-15 13:43:09 +01:00
malte_langkabel 2c4711f657 logic: fixed undo redo not working for functions
* added real NameHierarchy (with signatures) when creating nodes for the graph, instead of using the SearchIndex which doesn't know about signatures.
2016-01-15 13:02:30 +01:00
malte_langkabel ad3229ebb2 data: fixed auto type
* fixed handling of non-deducible auto-type (e.g. when the auto-type depends on a template parameter).
2016-01-15 12:29:43 +01:00
malte_langkabel eecf8b95d2 data: expanded typename resolving
* implemented explicit handling of Decltype when resolving the typename.
2016-01-14 16:01:32 +01:00
malte_langkabel 5a39cab495 test: made tests run again.
* added call to SqliteStorage::init() in storage tests.
* made Storage::getIdForNodeWithNameHierarchy(...) return the correct node id again.
2016-01-14 13:28:49 +01:00
malte_langkabel c9e499c86c ui: language standard
* reversed the order of language standard options in the dropdowns.
2016-01-14 12:51:01 +01:00
Andreas Stallinger 047490512b ui: mouse cursor override
mouse cursor override in qtmainwindow removed, mouse cursor for codearea and graphview set to arrow
2016-01-13 17:15:53 +01:00
Eberhard Graether 99776f0242 logic: Defaults for C and C++ standard in dropdowns and fixed main to be first active symbol 2016-01-13 12:19:47 +01:00
Andreas Stallinger 46a629358c utility: loading project via commanlineargument
loading a project via commanline with --project or -p argument
2016-01-12 13:24:04 +01:00
Eberhard Graether b8faa5506d data: Fixed version check when opening older db 2016-01-08 14:51:11 +01:00
malte_langkabel ffca8841ea logic: exception parsing
* disabled clang warnings when analyzed code contains exception related constructs.
2016-01-08 13:40:40 +01:00
malte_langkabel 6d6d67470b data: performance optimization
* added index for node names.
* removed some unused methods of the SqliteStorage.
2016-01-08 12:20:27 +01:00
malte_langkabel 899138a6bd data: performance optimization NameHierarchy
* For performance reasons nodes now store a serialized version of their name hierarchy directly. Removed NameHierarchy table from database.
2016-01-05 16:42:29 +01:00
Eberhard Graether 6f083a10ac src: improvements to logging
* log messages as they are sent and received
* log information about messages by overriding method print()
* reduced logging of autocompletion list
* removed log location from message and parsing logs, as they are known and make up 90% of logs
2016-01-04 16:06:32 +01:00
malte_langkabel f44b76936d build: cmake fix
* removed parser files from the app target since they are already compiled into the parser_lib which is linked to the app target.
2016-01-04 15:22:15 +01:00
Eberhard Graether 94e3058e38 ui: Added shortcut to font size resetting 2016-01-04 11:34:20 +01:00
Manuel Dobusch 958dad1d59 logic: vs plugin solution utility
Utility class to get list of files in a vs solution in the plugin.
2015-12-30 01:06:15 +01:00
Manuel Dobusch 5af8d0f03f ui: graph toggle button number position
Improved the position of the small number in the graph node toggle button for windows.
2015-12-30 00:21:38 +01:00
Manuel Dobusch afc2d1e6b5 ui: windows start menu shortcut
Fixed an issue with the start menu shortcut generated when installing on windows.
2015-12-27 18:45:05 +01:00
malte_langkabel bed0f8f157 logic: c language support
* re-added gui for c project setup
* ASTVisitor now visits RecordDecls instead of CXXRecordDecls
* prevented endless recursion when parsing struct that is defined in functions signature.
2015-12-18 16:27:49 +01:00
Eberhard Graether 5c0493267c ui: Added option for hiding dock widge title bars to view menu 2015-12-17 14:28:47 +01:00
malte_langkabel b6beab8283 logic: fixed locations in macro
* fixed a bug where the end of source locations contained in a macro was not calculated correctly.
2015-12-17 14:14:03 +01:00
Eberhard Graether 32cc49b0fd refactor: Define tooltip style in single css file and pass it to QApplication 2015-12-17 13:45:02 +01:00
Eberhard Graether b107fd2655 ui: Fixed activation of unparsed file with errors not showing anything 2015-12-17 13:23:45 +01:00
Eberhard Graether dd119fe12c script: fixed Mac OS bundle script 2015-12-17 12:00:51 +01:00
Eberhard Graether b58778da0c resources: Added new changelog 2015-12-17 11:41:43 +01:00
Eberhard Graether f725dc1866 ui: use green for comments in bright scheme for better readability 2015-12-16 17:18:55 +01:00
Manuel Dobusch 8a1914182f ui: disabled language selection
Disabled language selection because parsing C code caused crashes.
2015-12-16 16:58:40 +01:00
malte_langkabel d5cf4b7109 logic: improved template argument parsing
* improved the way of gettig a TemplateSpecializationTypeLoc from any TypeLoc to parse template arguments.
* fixed wrong forward mouse button code in app settings.
2015-12-16 16:36:36 +01:00
Eberhard Graether 82a16341d8 ui: renamed undo&redo to back&forward, control back&forward via mouse and backspace
* the key codes for mouse back and forward buttons can be defined in the ApplicationSettings
* fixed only left mouse button allowed for graph interactions
2015-12-16 16:22:10 +01:00
malte_langkabel 103c8242f5 logic: fixed template argument parsing crash
* handled case when clang doesn't know the source info of an explicitly specified template argument :(
2015-12-16 13:27:00 +01:00
Eberhard Graether f06bb0e031 logic: Fixed log warnings of color scheme and edge
* fixed warnings for overriden node and edge colors
* fixed warnings for edges connecting the wrong node types
* removed tool tip from color scheme
* changed names in project setup screen
2015-12-16 11:33:59 +01:00
malte_langkabel a44af51122 data: function signature handling
* functions will only display their names in the graph view. hovering the nodes shows the signature as a tooltip. However, nodes in the database will be created and used regarding their signature.
* improved lambda handling. All calls to generated lambda functions (constructor, call operator) will now point to the lambda class instead.
* implemented handling of the "auto" type.
* improved the CxxParserTestSuite to use function strings instead of function names for template related functions.
2015-12-16 11:27:29 +01:00
Manuel Dobusch 28c1a0048b ui: windows setup prerequisit
Added windows prerequisit to installer project. This prompts the user to download and install prerequisit automatically.
2015-12-14 18:24:17 +01:00
malte_langkabel 3000b88bd3 test: fixed tests
* changed the tests to reflect the changes to source location parsing in commit 26203c4ac8
2015-12-14 17:21:38 +01:00
malte_langkabel 6b750de333 data: anonymous unions
* fixed crashes that occurred when parsing unnamed unions.
2015-12-14 17:12:19 +01:00
Eberhard Graether 7b6c83d441 ui: use bright tooptips in every color scheme because it can't be changed on Windows 2015-12-14 11:32:25 +01:00
Eberhard Graether e8dda6acbe logic: Fixed db refreshed when opening with existing db 2015-12-14 11:21:03 +01:00
Eberhard Graether ff3377161b ui: Improved spacing of children within function and method nodes 2015-12-14 10:11:48 +01:00
Eberhard Graether 1ddc4609e4 build: fixed trial project
* fixed boost dependency
* fixed TaskParseCXX of trial to initialize correctly
2015-12-13 05:18:40 +01:00
Eberhard Graether 801c2555bc src: fixed clang warnings 2015-12-13 04:48:04 +01:00
Eberhard Graether 87ad243f31 logic: Fixed crash when refreshing project after deleting coatidb 2015-12-13 04:32:59 +01:00
Eberhard Graether 26203c4ac8 data: Fixes for parsing Coati
* reverted to old source location retrieval for CxxConstructExpr, because source locations were outside file
* removed exisiting source location check for better performance
* fixed CXXParserTestSuite to use c++11 standard
* fixed crash on missing signature retrieval
2015-12-12 15:14:44 +01:00
Eberhard Graether cd4c0e64b4 data: Fixed language std not added to parser arguments 2015-12-11 19:15:37 +01:00
Eberhard Graether ceea7b6b48 build: Added app name to plist of Mac bundle 2015-12-11 18:10:07 +01:00
Manuel Dobusch 0f4e49477a ui: language standard options
Added some language standard options.

<description>
2015-12-11 15:22:28 +01:00
malte_langkabel 52352baa8e data: fix anonymous record crash
* implemented handling of anonymous classes and structs.
2015-12-11 12:27:38 +01:00
malte_langkabel 3da20e3e32 data: location crash fix
* fixed a crash that occurred when trying to find the correct location of a constructor call.
* refactored that code while being at it ;)
2015-12-10 18:59:49 +01:00
malte_langkabel 01bcf7266b data: lambda handling
* implemented handling lambdas as functions
* functions can have child nodes now
* NameElements in NameHierarchy can have signatures now.
* fixed crash that occurred when message listener was used while being half way through its destruction process.
2015-12-10 18:00:54 +01:00
Manuel Dobusch 2b03215ea4 ui: language standard
Added language standard select functionality to gui and language standard to project settings.
2015-12-09 19:54:13 +01:00
Andreas Stallinger c5077e1db1 build: missing boost include in cmakelists 2015-12-09 16:24:04 +01:00
Andreas Stallinger 59d6143fbf build: lib for the parser
lib_parser is new, its use by app and test

<description>
2015-12-09 14:34:14 +01:00
Andreas Stallinger a6648cafeb ui: different ui for trial and app 2015-12-09 13:00:39 +01:00
Andreas Stallinger 43409cd6b7 build: trial version target
builds now app and trail target, lib_gui added, istrail function
2015-12-08 17:55:12 +01:00
malte_langkabel ed4b6546f0 logic: template argument handling
* now Coati will also parse the body of an instantiated template function and follow calls to other template functions there.
* Coati will parse template arguments at the point of implicit or explicit template instantiation and explicit template specialization.
* refactored template handling in storage.
2015-12-08 10:29:21 +01:00
Eberhard Graether faa79e44f1 ui: added help texts to directory list boxes
* added a ? button to the labels of the directory list boxes to show help messages
* added a window stack to QtMainWindow for easier screen handling
* added a button to the preferences in the project setup
* removed 'has seen settings' flag from AppSettings
2015-12-03 19:09:42 +01:00
malte_langkabel 32db79a675 logic: fix infinite loop
* fixed a loop that might be running indefinitely while looking for the correct source location of an identifier.
2015-12-03 16:26:00 +01:00
Eberhard Graether 0424162acb ui: removed close window action from menu because it quits the application 2015-12-03 14:50:40 +01:00
malte_langkabel 151b4d8620 logic: fixed crash when calling message listeners that already have been destroyed
* prevented lambda created by MessageQueue::sendMessageAsTask to call functions on message listeners that already have been destroyed.
2015-12-03 13:54:47 +01:00
malte_langkabel 23909058c8 logic: fixed infinite loop
* fixed infinite loop that occurred when trying to find the source location of an unnamed template parameter.
* commented out the deploy settings define.
2015-12-02 16:38:06 +01:00
Eberhard Graether 3fac5e69f3 data: Fixed constructors and destructurs having return type use void without location 2015-12-02 16:24:37 +01:00
Eberhard Graether 1eb9b194ff ui: immediatly show all errors during parsing 2015-12-02 16:09:48 +01:00
Eberhard Graether 35b5e423da utility: creating directories with boost in FileSystem method 2015-12-02 15:23:27 +01:00
Eberhard Graether 7d0b3773e7 ui: Fixed font zoom not affecting graph 2015-12-02 15:12:42 +01:00
Manuel Dobusch 9ed8dd69c7 ui: windows uninstall
Added uninstall script
2015-12-02 14:57:38 +01:00
Eberhard Graether fb7113917d ui: updated about window 2015-12-02 14:52:54 +01:00
Manuel Dobusch 04196db81d ui: windows installer
Created a windows installer (vs deployment project).
2015-12-02 14:50:02 +01:00
Eberhard Graether 09bc453fb0 logic: Fixed graph view style settings not loaded correctly when project has errors 2015-12-01 15:12:04 +01:00
Andreas Stallinger 77466bb57e utility: Fileendings for DB and Settings changed
changed DB from .sqlite to .coatidb and Projectsettings from .xml to .coatiproject
2015-11-30 16:02:05 +01:00
Andreas Stallinger bfaceceb29 build: remove Coati folder from linux package
removed the coati folder in Coati-<version> folder, was one folder too much
2015-11-27 15:05:14 +01:00
Eberhard Graether 9af08f4ff1 ui: Fixed font size in graph smaller on non MacOS systems 2015-11-26 00:13:58 +01:00
Eberhard Graether 6d8f733962 ui: show signature in function & method tooltip 2015-11-25 16:48:26 +01:00
malte_langkabel 622972cd28 logic: Template Parameter Packs
* implemented handling of template parameter packs.
* added tests for these cases.
* refactored some areas of the template code.
* fixed the names of template arguments that get parsed when they occur in a function's/declarator's body.
2015-11-25 15:43:59 +01:00
Eberhard Graether f29a966504 ui: fixed syntax highlighting
* fixed strings and number highlights within comments
* fixed quotations not considering escaped quotations within strings
* fixed quotations spanning till last quotation in line
* fixed tag quotations only used after blank space
* fixed multiline comments using correct start and end
* fixed single line comments interfering with multiline comments
2015-11-25 14:05:03 +01:00
malte_langkabel 0144c44d1d data: Fix Locations of Declarations
* using clang's lexer to get the exact location of a declaration's identifier.
2015-11-24 14:09:17 +01:00
Andreas Stallinger a5f08d0946 ui: fix for loop warning
replaced int with size_t
2015-11-24 11:00:58 +01:00
Manuel Dobusch 057ab57a42 logic: vs plugin bug
Error handling for plugin bug where the client socket is disposed when it's still needed.
2015-11-23 15:41:26 +01:00
Eberhard Graether fa7c8d8b40 ui: use icons in directory list box UI 2015-11-23 14:01:56 +01:00
malte_langkabel 96d933633f ui: Show Template Definition
* Show template definition in codeview when implicite specialization is active.
2015-11-20 15:38:35 +01:00
Eberhard Graether f5f4eed509 ui: extended color scheme and added new color scheme bad_rainbow
* added color scheme template
* define fill, border, text, icon and hatching colors for each node with states normal and focus
* define colors for each edge with states normal and focus
* use default node and edge colors when no type specific ones are defined
* use normal colors for nodes and edges when no focused are defined
* allow nodes and edges to imitate look of others with "like" tag
* added style for bundle
* added style for count circle
2015-11-20 15:24:20 +01:00
malte_langkabel 9f0df1bcee src: Handling of Anonymous Enums
* names of anonymous enums are constructed like names of anonymous namespaces.
2015-11-20 14:15:24 +01:00
malte_langkabel c40dda07f8 src: Fix Annotations after Snippet Merge
* snippet::merge does not take code from TextAccess since it could be out of date. Instead it takes the code from the snippets that will be merged.
2015-11-20 12:02:33 +01:00
malte_langkabel bbf9c43909 src: Template Argument Handling
* improved handling of template arguments
2015-11-19 16:30:59 +01:00
Eberhard Graether 4e6fdaf79c setup: improved MacOSX bundle script to do all the release work 2015-11-19 10:29:52 +01:00
Eberhard Graether 19b4d152c7 resources: updated manual and added changelog to README 2015-11-19 09:37:27 +01:00
malte_langkabel 9da116ddcf logic: Parsing Field Initializations
* extended use of ASTBodyVisitor methods for visiting VarDecls to include FieldDecls as well (part of C++ 11).
* impemented handling of invalid source location in ASTVisitor to prevent crash.
2015-11-18 19:44:30 +01:00
Manuel Dobusch fbc5f7a7fe logic: network port option
Added options to Coati and VS plugin to set network ports
2015-11-18 17:08:05 +01:00
malte_langkabel ea04dc926f script: windows packaging script updates
* changed the name of the folder that gets packaged.
* added some [y/N] questions.
2015-11-18 14:56:40 +01:00
Eberhard Graether 816be7b654 ui: undefined symbols bundle needs at least 2 nodes 2015-11-18 13:22:57 +01:00
malte_langkabel 901fa1a387 data: template argument handling
* storing template argument relations for cases where at lease one of these (template class, template argument) is defined inside the parsed project files.
* prevented storage from saving the same source location multiple times.
2015-11-17 18:09:20 +01:00
Andreas Stallinger 88b94a21d0 build: linux package
linux package
2015-11-17 16:41:49 +01:00
malte_langkabel 102bc8945a test: comment parsing
added tests for comment parsing.
2015-11-17 14:03:56 +01:00
Andreas Stallinger 86f06c9f78 ui: recent projects menu fix
recent projects updates now when a projects is loaded
2015-11-17 12:13:48 +01:00
malte_langkabel 42afbce300 resources: Tutorial Project Improvements
* implemented "user study" feedback
2015-11-17 10:54:56 +01:00
malte_langkabel 8f0213e18c build: Packaging Script for Windows
* added packaging script for windows
* renamed sublime plugin.
* added tictactoe project to packages projects
2015-11-16 15:42:23 +01:00
Andreas Stallinger fc816240cb ui: Recent projects in menu
add a recent projects menu in the project menu
2015-11-13 22:53:37 +01:00
malte_langkabel 7fce4cfae6 resources: Tutorial Project
* added tutorial project to coati projects.
* ignoring all .sqlite files for git.
2015-11-13 18:55:10 +01:00
Eberhard Graether 3c2804797a logic: improvements for IDE communication
* fixed Sublime Text plugin to correctly send messages
* activate and focus Coati window when receiving a message
* extended lookup range for activate token message from plugin
2015-11-13 13:09:22 +01:00
Eberhard Graether df7c5ea9b7 ui: code view scrolls directly to active line
This change makes the code view first look for the rect of the first active line and then tries to scroll this line into
the middle of the view.
2015-11-13 10:39:30 +01:00
Eberhard Graether de4f2973bc ui: Fixed search query without node disappears when submiting search request 2015-11-12 13:45:57 +01:00
Eberhard Graether 00b74d2f30 ui: focusing multiple tokens at once
This change focuses all token locations underneath the cursor at once by extending the focus handling to use vectors.
2015-11-12 10:14:46 +01:00
Eberhard Graether 28e3880e10 ui: Fixed cursor jumping to end position when editing search query 2015-11-11 15:13:48 +01:00
Eberhard Graether 42aa99d99b ui: reworked code view highlighting
This change draws the annotations in the code view in the paintEvent handler instead of using the ExtraSelections API.
Annotations are now drawn with a slight corner radius. Fill and border colors are defined in the ColorScheme.
2015-11-11 15:02:23 +01:00
Eberhard Graether 3351e4aad7 data: fixed parsing problems
* fixed calleeDecl pointer not checked for CallExpr
* fixed CommentHandler not checking if valid file in FileRegister
2015-11-10 10:25:47 +01:00
Andreas Stallinger 5ef9ef9e7d build: publish and sync script modification
now you can pass a branch to the publish and sync script to sync or publish to another branch  then master
2015-11-10 10:11:50 +01:00
Andreas Stallinger a4c134ebe2 src: fix clang warnings in QtCodeArea 2015-11-09 15:32:42 +01:00
Manuel Dobusch f2a202c064 logic: vs focus
Setting cursor in VS via Coati now sets the focus to the VS window.
2015-11-09 13:59:55 +01:00
Eberhard Graether 372f262204 data: don't parse lambda calls to avoid subnodes within functions 2015-11-06 14:50:25 +01:00
malte_langkabel 50bc970c30 data, ui: comment handling
* CodeView displays comments as atomic regions. They are either displayed as a whole or not at all. Do nothing halfway!
* added CommentHandler that handles comments detected by clang.
* stored CommentLocations in database.
2015-11-06 14:03:20 +01:00
Manuel Dobusch e186eefdff ui: context menu
Context menu for code view added, including option to set IDE cursor.
2015-11-04 18:51:49 +01:00
Eberhard Graether bcbeacb951 utility: Fixed crash when creating Timepoint with empty string 2015-11-04 15:12:35 +01:00
Eberhard Graether 961d0fe541 ui: clearing data in ProjectSetupScreen after creating new project 2015-11-04 14:14:20 +01:00
Eberhard Graether 5dada05bc5 data: saving macro definition scopes 2015-11-04 13:47:33 +01:00
Eberhard Graether 884e42a30c test: fixed TestSettings.xml and cleansed test_log.txt 2015-11-04 13:02:35 +01:00
Eberhard Graether 9f684ad9f5 data: saving errors to Storage
* saving errors in separate sqlite table
* use MessageShowErrors to show the errors in the UI
* show error count permanently in the right side of the status bar with click to show
* fixed clicking of error locations
* fixed expanding of files with errors
2015-11-04 12:00:28 +01:00
malte_langkabel 78259c7123 src: refactoring TimePoint
* removed typedef utility::TimePoint and replaced all its usages by using the class TimePoint instead.
2015-11-03 16:48:55 +01:00
Manuel Dobusch 7d03166282 logic: VS plugin fixes
Fixed some vs plugin issues and added plugin project to repo
2015-11-03 15:26:47 +01:00
malte_langkabel 006e73ef4c ui: horizontal scroll fix
* prevented the mouse wheel from scrolling a horizontal scrollbar when the mouse happens to enter the scrollbar's area.
2015-11-03 12:40:03 +01:00
malte_langkabel 11147e982f test: template scope fixes
* changed expected scope locations of template classes in tests to include template parameters.
2015-11-03 11:11:20 +01:00
malte_langkabel 9c4dc7b71f src: Sublime Text 3 compatibility. 2015-11-03 10:53:14 +01:00
malte_langkabel a524a7a71c ui: file not up to date display
* the codeview now displays a hatched background for a filename when the file's content has changed or the file does not exist anymore.
* added TimePoint class to encapsulate boost.
2015-11-03 10:29:29 +01:00
Eberhard Graether 42ab36fbad data: Saving application version to storage and refresh when version changes
The version string of the application is stored on every parse. The utility class Version is used to parse the version
string and compare application and stored string. The third number in the version string is now the storage refresh
number, the project will be refreshed when it changes. (0.2.1 -> 0.2.2)
2015-11-02 10:14:03 +01:00
malte_langkabel 1ad2dbe86e ui: status messages for IDE communication
* added status messages that are displayed when sending commands to the IDE.
* added status messages that are displayed when receiving commands from the IDE.
2015-10-30 11:34:28 +01:00
malte_langkabel e8c8a4ca50 logic: sublime plugin fix
* implemted checking if file really exists before letting sublime jump there.
2015-10-30 10:54:56 +01:00
Andreas Stallinger 58daa633c9 data: check for nullptr in searchindex 2015-10-29 13:33:12 +01:00
malte_langkabel a7ad0a60f3 ui: coati plugin for sublime
* Added first version of the CoatiCommunicator for Sublime.
* This version has only been tested with Sublime Text 2.
2015-10-28 15:10:47 +01:00
Eberhard Graether c7a2533dc4 data: increased autocomplete performance by caching and limiting results to 100 2015-10-27 14:22:45 +01:00
Andreas Stallinger cbb6fcd8e2 test: fixed settingstestsuite
changed settings.xml to new/refactored xml tags
2015-10-27 10:13:29 +01:00
malte_langkabel c704b4f65c ui: IDE communication integration
* handled communication from VS to Coati and vice versa.
* one bug still remains: Coati regards a tab as a single character while VS regards it as multiple characters. This causes offsets in communicated positions.
2015-10-23 13:25:15 +02:00
malte_langkabel c06beb21cb data: template class/function scope locations
* Added source locations of template parameters to the scope of template classes and functions to improve context availability in the code view.
2015-10-21 19:56:47 +02:00
Eberhard Graether 1382356a39 build: added release instructions to README 2015-10-21 10:34:11 +02:00
526 changed files with 28222 additions and 4170 deletions
+6
View File
@@ -18,4 +18,10 @@ then
exit 1
fi
if [ $BRANCH_NAME == "public_beta" ]
then
echo -e $ABORT "Commiting to public_beta is prohibited."
exit 1
fi
exit 0
+37 -3
View File
@@ -1,24 +1,58 @@
/build/
/distr/
/deps/
/bin/app/Debug/
/bin/app/Release/
/bin/app/data/log/
/bin/app/data/projects/
/bin/app/data/projects/ignored/
/bin/app/data/ApplicationSettings.xml
/bin/app/data/window_settings.ini
/bin/app/data/*.sqlite
/bin/lib/
/bin/lib_gui/
/bin/lib_parser/
/bin/lib_license/
/bin/license_generator/Debug/
/bin/license_generator/Release/
/bin/test/Debug/
/bin/test/Release/
/bin/test/data/log/
/bin/test/data/temp.xml
/bin/test/data/TestSettings.xml
/bin/test/data/*.sqlite
/setup/Linux/lib/*
.DS_Store
.idea
/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/bin
/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/obj
.clang_complete
*.coatidb
/deployment/windows/CoatiSetup/CoatiSetup/Debug
/deployment/windows/CoatiSetup/CoatiSetup/Release
/deployment/windows/CoatiSetup/CoatiSetup.v12.suo
/deployment/windows/CoatiSetup/SetupApplicationSettingsLib/bin/
/deployment/windows/CoatiSetup/SetupApplicationSettingsLib/obj/
/deployment/windows/CoatiSetup/SetupCreateDesktopShortcutLib/bin/
/deployment/windows/CoatiSetup/SetupCreateDesktopShortcutLib/obj/
/deployment/windows/CoatiSetup/SetupCreateStartMenuShortcutLib/bin/
/deployment/windows/CoatiSetup/SetupCreateStartMenuShortcutLib/obj/
/deployment/windows/CoatiSetup/SetupRemoveCacheFiles/bin/
/deployment/windows/CoatiSetup/SetupRemoveCacheFiles/obj/
*.sqlite
*.pch
*.swp
.clang_complete
+253 -60
View File
@@ -16,7 +16,12 @@ include(cmake/licenses.cmake)
set(PROJECT_NAME Coati)
set(APP_PROJECT_NAME "${PROJECT_NAME}")
set(TRIAL_PROJECT_NAME "${PROJECT_NAME}_trial")
set(LIB_LICENSE_PROJECT_NAME "${PROJECT_NAME}_lib_license")
set(LIB_GUI_PROJECT_NAME "${PROJECT_NAME}_lib_gui")
set(LIB_PARSER_PROJECT_NAME "${PROJECT_NAME}_lib_parser")
set(LIB_PROJECT_NAME "${PROJECT_NAME}_lib")
set(LICENSE_GENERATOR_PROJECT_NAME "${PROJECT_NAME}_license_generator")
set(TEST_PROJECT_NAME "${PROJECT_NAME}_test")
if (WIN32)
@@ -35,24 +40,15 @@ if (UNIX)
endif ()
# Project ----------------------------------------------------------------------
project(${PROJECT_NAME})
if (UNIX AND NOT APPLE)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" )
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" )
#set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32" )
endif ()
# Clang ------------------------------------------------------------------------
if (UNIX)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_release/share/llvm/cmake")
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_release/share/llvm/cmake" NO_DEFAULT_PATH)
else()
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_debug/share/llvm/cmake")
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_debug/share/llvm/cmake" NO_DEFAULT_PATH)
endif()
else()
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build/share/llvm/cmake")
@@ -66,18 +62,27 @@ add_definitions(${CLANG_DEFINITIONS})
set(BOOST_ROOT $ENV{BOOST_159_DIR})
set(Boost_USE_MULTITHREAD ON)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_RUNTIME OFF)
Set(Boost_NO_SYSTEM_PATHS ON)
set(BOOST_LIBRARYDIR $ENV{BOOST_159_DIR})
find_package(Boost 1.59 COMPONENTS system filesystem date_time REQUIRED)
find_package(Boost 1.59 COMPONENTS system program_options filesystem date_time REQUIRED)
# Eigen -------------------------------------------------------------------------
# Eigen ------------------------------------------------------------------------
add_definitions(-DEIGEN_MPL2_ONLY)
set(EIGEN_ROOT $ENV{EIGEN_DIR})
# Botan -------------------------------------------------------------------------
if(UNIX)
find_library(BOTAN botan-1.11 $ENV{BOTAN_DIR} NO_DEFAULT_PATH)
else()
find_library(BOTAN botan "$ENV{BOTAN_DIR}/release")
find_library(BOTAN_D botan "$ENV{BOTAN_DIR}/debug")
endif()
# Lib --------------------------------------------------------------------------
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib)
@@ -86,14 +91,12 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib)
add_subdirectory(src/lib)
add_subdirectory(src/external)
set_source_files_properties(${CLANG_FILES} PROPERTIES COMPILE_FLAGS "-fno-rtti")
set_source_files_properties(${EXTERNAL_FILES} PROPERTIES COMPILE_FLAGS "-w")
set_source_files_properties(${EXTERNAL_C_FILES} PROPERTIES COMPILE_FLAGS "-std=gnu89 -w")
add_library(${LIB_PROJECT_NAME} ${LIB_FILES} ${CLANG_FILES} ${EXTERNAL_FILES} ${EXTERNAL_C_FILES})
add_library(${LIB_PROJECT_NAME} ${LIB_FILES} ${EXTERNAL_FILES} ${EXTERNAL_C_FILES})
create_source_groups(${LIB_FILES})
create_source_groups(${CLANG_FILES})
create_source_groups(${EXTERNAL_FILES})
create_source_groups(${EXTERNAL_C_FILES})
@@ -118,20 +121,77 @@ target_include_directories(${LIB_PROJECT_NAME} SYSTEM
"${CMAKE_SOURCE_DIR}/src/external"
)
target_link_libraries(${LIB_PROJECT_NAME} ${Boost_LIBRARIES})
# Lib Parser -------------------------------------------------------------------
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_parser)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_parser)
add_subdirectory(src/lib_parser)
set_source_files_properties(${CLANG_FILES} PROPERTIES COMPILE_FLAGS "-fno-rtti")
add_library(${LIB_PARSER_PROJECT_NAME} ${CLANG_FILES})
create_source_groups(${CLANG_FILES})
set_property(
TARGET ${LIB_PARSER_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/lib_parser"
"${CMAKE_SOURCE_DIR}/src/lib"
)
target_include_directories(${LIB_PARSER_PROJECT_NAME} SYSTEM
PUBLIC ${LLVM_INCLUDE_DIRS}
${CLANG_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
)
link_directories(${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS})
target_link_libraries(${LIB_PROJECT_NAME} ${CLANG_LIBRARIES} ${LLVM_AVAILABLE_LIBS} ${Boost_LIBRARIES})
target_link_libraries(${LIB_PARSER_PROJECT_NAME} ${CLANG_LIBRARIES} ${LLVM_AVAILABLE_LIBS})
# App --------------------------------------------------------------------------
# Lib License -------------------------------------------------------------------
if (UNIX)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/${CMAKE_BUILD_TYPE})
else ()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/)
endif ()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_license)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_license)
add_subdirectory(src/app)
add_subdirectory(src/lib_license)
add_library(${LIB_LICENSE_PROJECT_NAME} ${LIB_LICENSE_FILES})
create_source_groups(${LIB_LICENSE_FILES})
set_property(
TARGET ${LIB_LICENSE_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/lib_license"
)
target_include_directories(${LIB_LICENSE_PROJECT_NAME} SYSTEM
PUBLIC
${Boost_INCLUDE_DIRS}
${LIB_LICENSE_PROJECT_NAME}
"$ENV{BOTAN_DIR}"
)
# target_include_directories(${LIB_LICENSE_PROJECT_NAME} optimized "$ENV{BOTAN_DIR}/release")
# target_include_directories(${LIB_LICENSE_PROJECT_NAME} debug "$ENV{BOTAN_DIR}/debug")
link_directories(optimized "$ENV{BOTAN_DIR}/release")
link_directories(debug "$ENV{BOTAN_DIR}/debug")
target_link_libraries(${LIB_LICENSE_PROJECT_NAME} debug ${BOTAN_D})
target_link_libraries(${LIB_LICENSE_PROJECT_NAME} optimized ${BOTAN})
# Lib Gui ----------------------------------------------------------------------
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_gui)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib_gui)
add_subdirectory(src/lib_gui)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
@@ -162,14 +222,82 @@ add_custom_target(
versionnumber ALL
)
add_library(${LIB_GUI_PROJECT_NAME} ${LIB_GUI_FILES} ${CMAKE_SOURCE_DIR}/build/src/lib_gui/version.h)
# command for versioning script
add_custom_command(
TARGET versionnumber
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/version.cmake
BYPRODUCTS ${PROJECT_SOURCE_DIR}/build/src/lib_gui/version.h
DEPENDS ${LIB_GUI_PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "check/update version number"
)
add_dependencies(${LIB_GUI_PROJECT_NAME} versionnumber)
create_source_groups(${LIB_GUI_FILES})
set_property(
TARGET ${LIB_GUI_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/build/src/lib_gui"
"${CMAKE_SOURCE_DIR}/src/lib"
"${CMAKE_SOURCE_DIR}/src/lib_gui"
"${CMAKE_SOURCE_DIR}/src/lib_license"
)
# include external header without warnings
target_include_directories(${LIB_GUI_PROJECT_NAME} SYSTEM
PUBLIC "${CMAKE_SOURCE_DIR}/src/external"
PUBLIC "$ENV{BOTAN_DIR}"
PUBLIC ${Boost_INCLUDE_DIRS}
)
# Use the Widgets module from Qt 5.
qt5_use_modules(${LIB_GUI_PROJECT_NAME} Widgets)
qt5_use_modules(${LIB_GUI_PROJECT_NAME} Network)
# configure platform specific include file
configure_file(
"${PROJECT_SOURCE_DIR}/src/lib_gui/platform_includes/includes.h.in"
"${PROJECT_SOURCE_DIR}/build/src/lib_gui/includes.h"
)
#configure the versioning file
configure_file(
${CMAKE_SOURCE_DIR}/cmake/version.h.in
${CMAKE_SOURCE_DIR}/build/src/lib_gui/version.h
)
# configure public key for the coati version
include(cmake/publicKey.cmake)
set(CMAKE_AUTOMOC OFF)
# App --------------------------------------------------------------------------
if (UNIX)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/${CMAKE_BUILD_TYPE})
else ()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/)
endif ()
add_subdirectory(src/app)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if (WIN32)
file(WRITE ${CMAKE_SOURCE_DIR}/build/Coati.rc
"// Icon with lowest ID value placed first to ensure application icon\n"
"// remains consistent on all systems.\n"
"IDI_ICON1 ICON \"${CMAKE_SOURCE_DIR}/build/coati.ico\"\n"
)
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CLANG_FILES} ${GEN_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc ${CMAKE_SOURCE_DIR}/build/src/lib_gui/version.h)
# hide the console when running a release build.
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${APP_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
@@ -177,32 +305,23 @@ if (WIN32)
set_target_properties(${APP_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/ENTRY:\"mainCRTStartup\" /SUBSYSTEM:WINDOWS")
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
else ()
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${GEN_FILES} ${CMAKE_SOURCE_DIR}/build/src/lib_gui/version.h)
endif ()
# command for versioning script
add_custom_command(
TARGET versionnumber
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/version.cmake
BYPRODUCTS ${PROJECT_SOURCE_DIR}/build/src/app/version.h
DEPENDS ${APP_PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "check/update version number"
)
add_dependencies(${APP_PROJECT_NAME} versionnumber)
create_source_groups(${APP_FILES})
target_link_libraries(${APP_PROJECT_NAME} ${LIB_PROJECT_NAME})
target_link_libraries(${APP_PROJECT_NAME} ${LIB_GUI_PROJECT_NAME} ${LIB_PARSER_PROJECT_NAME} ${LIB_PROJECT_NAME} ${LIB_LICENSE_PROJECT_NAME})
set_property(
TARGET ${APP_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/lib"
"${CMAKE_SOURCE_DIR}/src/app"
"${CMAKE_SOURCE_DIR}/src/lib"
"${CMAKE_SOURCE_DIR}/src/lib_gui"
"${CMAKE_SOURCE_DIR}/src/lib_license"
"${CMAKE_SOURCE_DIR}/src/lib_parser"
"${CMAKE_SOURCE_DIR}/build/src/lib_gui"
"${CMAKE_SOURCE_DIR}/build/src/app"
)
@@ -215,25 +334,72 @@ target_include_directories(${APP_PROJECT_NAME} SYSTEM
qt5_use_modules(${APP_PROJECT_NAME} Widgets)
qt5_use_modules(${APP_PROJECT_NAME} Network)
# configure platform specific include file
configure_file(
"${PROJECT_SOURCE_DIR}/src/app/platform_includes/includes.h.in"
"${PROJECT_SOURCE_DIR}/build/src/app/includes.h"
)
#configure the versioning file
configure_file(
${CMAKE_SOURCE_DIR}/src/app/version.h.in
${CMAKE_SOURCE_DIR}/build/src/app/version.h
)
# add platform specific libraries
if (APPLE)
find_library(CORE_FOUNDATION CoreFoundation)
target_link_libraries(${APP_PROJECT_NAME} ${CORE_FOUNDATION})
endif ()
set(CMAKE_AUTOMOC OFF)
# Trial ---------------------------------------------------------------------
if (UNIX)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/${CMAKE_BUILD_TYPE})
else ()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/)
endif ()
add_subdirectory(src/trial)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if (WIN32)
file(WRITE ${CMAKE_SOURCE_DIR}/build/Coati.rc
"// Icon with lowest ID value placed first to ensure application icon\n"
"// remains consistent on all systems.\n"
"IDI_ICON1 ICON \"${CMAKE_SOURCE_DIR}/build/coati.ico\"\n"
)
add_executable(${TRIAL_PROJECT_NAME} ${TRIAL_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc)
# hide the console when running a release build.
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/ENTRY:\"mainCRTStartup\" /SUBSYSTEM:WINDOWS")
set_target_properties(${TRIAL_PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
else ()
add_executable(${TRIAL_PROJECT_NAME} ${TRIAL_FILES} ${GEN_FILES})
endif ()
create_source_groups(${TRIAL_FILES})
target_link_libraries(${TRIAL_PROJECT_NAME} ${LIB_GUI_PROJECT_NAME} ${LIB_PROJECT_NAME} ${LIB_LICENSE_PROJECT_NAME} )
set_property(
TARGET ${TRIAL_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/trial"
"${CMAKE_SOURCE_DIR}/src/lib"
"${CMAKE_SOURCE_DIR}/src/lib_gui"
"${CMAKE_SOURCE_DIR}/build/src/lib_gui"
)
target_include_directories(${TRIAL_PROJECT_NAME} SYSTEM
PUBLIC "${CMAKE_SOURCE_DIR}/src/external"
PUBLIC ${Boost_INCLUDE_DIRS}
)
# Use the Widgets module from Qt 5.
qt5_use_modules(${TRIAL_PROJECT_NAME} Widgets)
qt5_use_modules(${TRIAL_PROJECT_NAME} Network)
# add platform specific libraries
if (APPLE)
find_library(CORE_FOUNDATION CoreFoundation)
target_link_libraries(${TRIAL_PROJECT_NAME} ${CORE_FOUNDATION})
endif ()
# MacOSX Bundle ----------------------------------------------------------------
@@ -279,6 +445,32 @@ if (APPLE)
endif ()
# License Generator --------------------------------------------------------
add_subdirectory(src/license_generator)
if (UNIX)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/license_generator/${CMAKE_BUILD_TYPE})
else ()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/license_generator/)
endif ()
add_executable(${LICENSE_GENERATOR_PROJECT_NAME} ${LICENSE_GENERATOR_FILES})
create_source_groups(${LICENSE_GENERATOR_FILES})
set_property(
TARGET ${LICENSE_GENERATOR_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/lib_license"
)
target_include_directories(${LICENSE_GENERATOR_PROJECT_NAME} SYSTEM
PUBLIC ${Boost_INCLUDE_DIRS}
)
target_link_libraries(${LICENSE_GENERATOR_PROJECT_NAME} ${LIB_LICENSE_PROJECT_NAME} ${Boost_LIBRARIES} )
# CxxTest ----------------------------------------------------------------------
if (UNIX)
@@ -295,20 +487,22 @@ set(TESTGEN_FILE ${CMAKE_CURRENT_BINARY_DIR}/test_main.cpp)
find_package(PythonInterp REQUIRED)
add_executable (${TEST_PROJECT_NAME} ${TESTGEN_FILE} ${TEST_FILES})
add_executable (${TEST_PROJECT_NAME} ${TESTGEN_FILE} ${TEST_FILES} )
create_source_groups(${TEST_FILES})
target_link_libraries(${TEST_PROJECT_NAME} ${LIB_PROJECT_NAME})
target_link_libraries(${TEST_PROJECT_NAME} ${LIB_PARSER_PROJECT_NAME} ${LIB_PROJECT_NAME} ${LIB_LICENSE_PROJECT_NAME})
find_package(CxxTest)
if (CXXTEST_FOUND)
set_property(
TARGET ${TEST_PROJECT_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_SOURCE_DIR}/src/lib"
"${CXXTEST_INCLUDE_DIR}"
"${CMAKE_SOURCE_DIR}/src/lib"
"${CMAKE_SOURCE_DIR}/src/lib_parser"
"${CMAKE_SOURCE_DIR}/src/external"
"${CMAKE_SOURCE_DIR}/src/lib_license"
${Boost_INCLUDE_DIRS}
)
endif (CXXTEST_FOUND)
@@ -344,7 +538,6 @@ elseif (UNIX)
endif ()
# Visual Leak Detector ---------------------------------------------------------
if (WIN32)
+90 -1
View File
@@ -10,6 +10,7 @@
* Clang & LLVM (installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
* Boost 1.59
* Eigen 3.2.6
* Botan 1.11.24
##### Environment Variables
@@ -18,16 +19,49 @@
* CLANG_DIR - .../clang-llvm/
* BOOST_159_DIR - .../boost_1_59_0
* EIGEN_DIR - .../eigen
* BOTAN_DIR - .../Botan-1.11.24
For Win32:
* VLD_DIR - .../Visual Leak Detector
* path - apped path to git.exe
###### Botan setup
Build release lib in ${BOTAN_DIR}/release
Build debug lib in ${BOTAN_DIR}/debug
for Windows release build:
$ python configure.py --cc=msvc --cpu=x86_32 --via-amalgamation --disable-shared
for Windows debug build:
python configure.py --cc=msvc --cpu=x86_32 --via-amalgamation --disable-shared --no-optimizations --with-debug-info
for other:
$ python configure.py --via-amalgamation --disable-shared
##### Settings
Run setup script:
$ ./script/setup.sh
#### Release
##### App
* create release build
* make sure it uses the Coati icon
* obfuscate the executable using upx
##### 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 Coati start layout
##### Package
* add app
* add web/coati_manual.pdf to package
##### Updating Clang on UNIX
$ cd .../clang_llvm
@@ -51,4 +85,59 @@ $ ninja -j4 check-all
##### Remarks
* Boost lib dir: rename library directory for your system (e.g.: 'lib32-msvc-12.0') to 'lib'
* Boost lib dir: rename library directory for your system (e.g.: 'lib32-msvc-12.0') to 'lib'
#### Changelog
##### 0.3.0
* Added Tutorial project
* Added communication interface from and to Coati via TCP sockets
* Added plugin for Visual Studio (2012, 2013, 2015)
* Added plugin for Sublime Text (2 & 3)
* Increased autocompletion performance by caching and limiting results to 100
* Save Coati version to sqlite and reparse project whenever the version changes
* Improved source locations of template scopes
* Fixed horizontal scroll in code view not activated while scrolling vertically
* Save errors to storage and reactivate them via button in the status bar
* Save macro scopes
* Fixed old data was still in new project window when creating another project
* Save comment locations and display them when right next to active symbol
* Reworked code view highlighting
* Fixed cursor was jumping at end of query when editing a search query
* Fixed search query disappeared when not token was found for it
* Improved code view auto scroll to center the first active line in the middle
* Focus all overlapping source locations in the code view
* Added recent projects menu option
* Saving all template arguments type uses
##### 0.4.0
* Network ports for IDE communication can be defined in the ApplicationSettings.xml
* Coati can now handle inclass initialization of members
* Improved handling of template arguments in analysis
* Coati now handles anonymous symbols when parsing files
* Extended color schemes to allow more extensive use in the graph
* Added new color scheme called "bad_rainbow"
* Coati shows a template's general definition when an implicit specialization is activated
* Fixed source locations of many declarations
* Fixed syntax highlighting to correctly identify strings, comments and block comments
* Added analysis for template parameter packs
* Show function and method signature in tooltip when hovering the graph node
* Fixed graph font size was too small for Windows and Linux
* Removed Coati directory from Linux package
* Introduced file endings .coatiproject and .coatidb for Coati's project files
* Added installer for Windows
* Installing prerequisits in Windows Installer
* Redesigned the about window
* Parse errors will be displayed as they appear during analysis
* Fixed constructors and destructors using return type 'void' withou source location
* Removed 'close window' action from menu
* Added help texts to project setup and preferences window
* Improved lambda handling in analysis
* Fixed style of function or method nodes with children
* Fixed tooltip colors in dark color scheme
* renamed undo&redo to back&forward
* navigate back&forward via mouse buttons
* navigate back via backspace key
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<config>
<user>
<recent_projects>
<recent_project>./data/projects/tutorial/tutorial.coatiproject</recent_project>
<recent_project>./data/projects/tictactoe/tictactoe.coatiproject</recent_project>
</recent_projects>
</user>
</config>
+14 -2
View File
@@ -40,10 +40,22 @@
</code>
<user>
<has_seen_settings><!-- BOOL: if the user was already asked to enter app settings --></has_seen_settings>
<recent_projects>
<recent_project><!-- STRING: recent project path --></recent_project>
</recent_projects>
<license>
<check><!-- STRING: hashed path of the working directory used when entering the license key --></check>
<license><!-- STRING: the license key --></license>
</license>
</user>
<network>
<plugin_port><!-- INTEGER: port the plugin listens to, standard is 6666 --></plugin_port>
<coati_port><!-- INTEGER: port coati is listening to, standard is 6667 --></coati_port>
</network>
<controls>
<mouse_back_button><!-- INTEGER: mouse button code of back button, default is 8 --></mouse_back_button>
<mouse_forward_button><!-- INTEGER: mouse button code of forward button, default is 16 --></mouse_forward_button>
</controls>
</config>
@@ -7,6 +7,15 @@
<!-- COLOR: int int int int - rgba e.g. 125 125 125 255 -->
<config>
<info>
<description><!-- STRING: optional description shown in overview. Symbols can be linked with syntax [main] --></description>
</info>
<language_settings>
<language><!-- STRING: name of the language, e.g. c, c++, spanish, greek, greek++,... --></language>
<standard><!-- STRING: language version, e.g. c++ '11' --></standard>
</language_settings>
<source>
<source_paths>
<source_path><!-- STRING: path to source file or directory, also used as header search path --></source_path>
+241
View File
@@ -0,0 +1,241 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
COLOR:
1. HEX RGB: #RRGGBB - e.g. #00FF00
2. HEX ARGB: #AARRGGBB - e.g. #5500FF00
3. Qt5 color name - e.g. white (http://doc.qt.io/qt-5/qcolor.html)
-->
<config>
<search>
<background></background>
<button>
<normal></normal>
<hover></hover>
<press></press>
<disabled></disabled>
<icon></icon>
</button>
<field>
<text></text>
<background></background>
<highlight></highlight>
</field>
<popup>
<text></text>
<by_text></by_text>
<background></background>
<highlight></highlight>
</popup>
<query>
<none>
<normal></normal>
<hover></hover>
</none>
<command>
<normal></normal>
<hover></hover>
</command>
<operator>
<normal></normal>
<hover></hover>
</operator>
</query>
</search>
<code>
<background></background>
<file>
<background></background>
<title>
<text></text>
<normal></normal>
<hover></hover>
<press></press>
<icon></icon>
</title>
<ref_count>
<text></text>
<background></background>
</ref_count>
</file>
<snippet>
<background></background>
<title>
<text></text>
<background></background>
<hover></hover>
</title>
<line_number>
<text></text>
<background></background>
</line_number>
<syntax>
<normal></normal>
<directive></directive>
<keyword></keyword>
<type></type>
<comment></comment>
<number></number>
<quotation></quotation>
<function></function>
</syntax>
<selection>
<location>
<normal>
<border></border>
<fill></fill>
</normal>
<focus>
<border></border>
<fill></fill>
</focus>
<active>
<border></border>
<fill></fill>
</active>
</location>
<scope>
<normal>
<border></border>
<fill></fill>
</normal>
<focus>
<border></border>
<fill></fill>
</focus>
<active>
<border></border>
<fill></fill>
</active>
</scope>
<error>
<normal>
<border></border>
<fill></fill>
</normal>
<focus>
<border></border>
<fill></fill>
</focus>
<active>
<border></border>
<fill></fill>
</active>
</error>
</selection>
</snippet>
</code>
<graph>
<background></background>
<node>
<!-- REQUIRED -->
<default>
<!-- NODE TEMPLATE-->
<like><!-- NODE TYPE NAME: Imitates the look of that node type. If defined all colors will be ignored --></like>
<fill>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</fill>
<border>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</border>
<text>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</text>
<icon>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</icon>
<hatching>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</hatching>
</default>
<!-- OPTIONAL: type specific node colors can be overriden by using the TEMPLATE within a type tag below -->
<type></type>
<class></class>
<struct></struct>
<enum></enum>
<typedef></typedef>
<template_parameter_type></template_parameter_type>
<function></function>
<method></method>
<field></field>
<global_variable></global_variable>
<enum_constant></enum_constant>
<undefined></undefined>
<namespace></namespace>
<file></file>
<macro></macro>
<access></access>
<bundle></bundle>
<count_number></count_number> <!-- The small circles with numbers in the graph -->
</node>
<edge>
<!-- REQUIRED -->
<default>
<!-- EDGE TEMPLATE-->
<like><!-- EDGE TYPE NAME: Imitates the look of that edge type. If defined all colors will be ignored --></like>
<normal></normal>
<focus></focus> <!-- If not defined, the normal tag is used -->
</default>
<!-- OPTIONAL: type specific edge colors can be overriden by using the TEMPLATE within a type tag below -->
<type_of></type_of>
<return_type></return_type>
<parameter_type></parameter_type>
<type_use></type_use>
<inheritance></inheritance>
<typedef></typedef>
<override></override>
<call></call>
<use></use>
<template_parameter></template_parameter>
<template_argument></template_argument>
<template_default_argument></template_default_argument>
<template_specialization></template_specialization>
<include></include>
<macro_use></macro_use>
<aggregation></aggregation>
</edge>
</graph>
<tool_tip>
<text></text>
<background></background>
</tool_tip>
</config>
+318
View File
@@ -0,0 +1,318 @@
<?xml version="1.0" encoding="utf-8"?>
<config>
<search>
<background>#494949</background>
<button>
<normal>#808080</normal>
<hover>#B1B1B1</hover>
<press>#CCCCCC</press>
<disabled>#606060</disabled>
<icon>white</icon>
</button>
<field>
<text>#3D3D3D</text>
<background>#808080</background>
<highlight>#B1B1B1</highlight>
</field>
<popup>
<text>#3D3D3D</text>
<by_text>#A0A0A0</by_text>
<background>#CCCCCC</background>
<highlight>#FFFFFF</highlight>
</popup>
<query>
<none>
<normal>#B1B1B1</normal>
<hover>#CCCCCC</hover>
</none>
<command>
<normal>#406D4D</normal>
<hover>#4E855E</hover>
</command>
<operator>
<normal>#7D2724</normal>
<hover>#8C2B29</hover>
</operator>
</query>
</search>
<code>
<background>#494949</background>
<file>
<background>#CCCCCC</background>
<title>
<text>black</text>
<normal>#CCCCCC</normal>
<hover>#BBBBBB</hover>
<press>#AAAAAA</press>
<icon>black</icon>
</title>
<ref_count>
<text>#C4C4C4</text>
<background>#494949</background>
</ref_count>
</file>
<snippet>
<background>#494949</background>
<title>
<text>#A0A0A0</text>
<background>transparent</background>
<hover>#2F2F2F</hover>
</title>
<line_number>
<text>#C4C4C4</text>
<background>#494949</background>
</line_number>
<syntax>
<normal>#C4C4C4</normal>
<directive>#00A0B6</directive>
<keyword>#00A0B6</keyword>
<type>#FF4A52</type>
<comment>#A0A0A4</comment>
<number>#EE7326</number>
<quotation>#D663D6</quotation>
<function>#FBBA00</function>
</syntax>
<selection>
<location>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>#B2B2B2</border>
<fill>transparent</fill>
</focus>
<active>
<border>#B2B2B2</border>
<fill>#4A4A4A</fill>
</active>
</location>
<scope>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>transparent</border>
<fill>transparent</fill>
</focus>
<active>
<border>transparent</border>
<fill>transparent</fill>
</active>
</scope>
<error>
<normal>
<border>transparent</border>
<fill>#A0FF0000</fill>
</normal>
<focus>
<border>transparent</border>
<fill>#FFFF0000</fill>
</focus>
<active>
<border>transparent</border>
<fill>#FFFF0000</fill>
</active>
</error>
</selection>
</snippet>
</code>
<graph>
<background>#494949</background>
<node>
<default>
<fill>
<normal>#807F80</normal>
</fill>
<border>
<normal>#FFFFFF</normal>
</border>
<text>
<normal>#3D3D3D</normal>
</text>
<icon>
<normal>#3D3D3D</normal>
</icon>
<hatching>
<normal>#494949</normal>
</hatching>
</default>
<type>
<border>
<normal>#20FFFFFF</normal>
<focus>#FFFFFF</focus>
</border>
<text>
<normal>#FFFFFF</normal>
</text>
<icon>
<normal>#FFFFFF</normal>
</icon>
</type>
<class>
<like>type</like>
</class>
<struct>
<like>type</like>
</struct>
<enum>
<like>type</like>
</enum>
<typedef>
<like>type</like>
</typedef>
<template_parameter_type>
<like>type</like>
</template_parameter_type>
<function>
<fill>
<normal>#FBBA00</normal>
<focus>#FFD05A</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#FFFFFF</focus>
</border>
</function>
<method>
<like>function</like>
</method>
<global_variable>
<fill>
<normal>#00A0B6</normal>
<focus>#3BAFB2</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#FFFFFF</focus>
</border>
</global_variable>
<field>
<like>global_variable</like>
</field>
<enum_constant>
<like>global_variable</like>
</enum_constant>
<undefined>
<fill>
<normal>#00000000</normal>
</fill>
<border>
<normal>#78282D</normal>
</border>
</undefined>
<namespace>
<like>undefined</like>
</namespace>
<file>
<fill>
<normal>#4E82F6</normal>
<focus>#7FA9F4</focus>
</fill>
<border>
<normal>#20FFFFFF</normal>
<focus>#FFFFFF</focus>
</border>
</file>
<macro>
<like>file</like>
</macro>
<access>
<fill>
<normal>#CCCCCC</normal>
</fill>
</access>
<bundle>
<fill>
<normal>#494949</normal>
</fill>
<border>
<normal>#80FFFFFF</normal>
<focus>#FFFFFF</focus>
</border>
<text>
<normal>#FFFFFF</normal>
</text>
<icon>
<normal>#FFFFFF</normal>
</icon>
</bundle>
<count_number>
<fill>
<normal>#494949</normal>
</fill>
<border>
<normal>#CCCCCC</normal>
</border>
<text>
<normal>#CCCCCC</normal>
</text>
</count_number>
</node>
<edge>
<default>
<normal>#797979</normal>
</default>
<override>
<normal>#CC5E89</normal>
</override>
<call>
<normal>#FBBA00</normal>
</call>
<use>
<normal>#2A6484</normal>
</use>
<template_parameter>
<normal>#C1305D</normal>
</template_parameter>
<template_argument>
<normal>#C1305D</normal>
</template_argument>
<template_default_argument>
<normal>#C1305D</normal>
</template_default_argument>
<template_specialization>
<normal>#C1305D</normal>
</template_specialization>
<include>
<normal>#4E82F6</normal>
</include>
<macro_use>
<normal>#4E82F6</normal>
</macro_use>
<aggregation>
<normal>#5D5D5D</normal>
<focus>#6D6D6D</focus>
</aggregation>
</edge>
</graph>
</config>
+140 -96
View File
@@ -62,7 +62,7 @@
</file>
<snippet>
<background>transparent</background>
<background>white</background>
<title>
<text>#A0A0A0</text>
@@ -72,7 +72,7 @@
<line_number>
<text>black</text>
<background>transparent</background>
<background>white</background>
</line_number>
<syntax>
@@ -80,179 +80,223 @@
<directive>#1B8856</directive>
<keyword>#1B8856</keyword>
<type>#C1492D</type>
<comment>#A0A0A4</comment>
<comment>#1A801A</comment>
<number>#C1315E</number>
<quotation>#865F9E</quotation>
<function>#CC9533</function>
</syntax>
<highlight>
<selection>
<location>
<normal>#90EBEBEB</normal>
<hover>#90B6D1DD</hover>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>#B2B2B2</border>
<fill>transparent</fill>
</focus>
<active>
<border>#B2B2B2</border>
<fill>#EDEDED</fill>
</active>
</location>
<scope>
<normal>#60E4EEF2</normal>
<hover>#90E4EEF2</hover>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>transparent</border>
<fill>transparent</fill>
</focus>
<active>
<border>transparent</border>
<fill>transparent</fill>
</active>
</scope>
<error>
<normal>#80FF0000</normal>
<hover>#FFFF0000</hover>
<normal>
<border>transparent</border>
<fill>#80FF0000</fill>
</normal>
<focus>
<border>transparent</border>
<fill>#FFFF0000</fill>
</focus>
<active>
<border>transparent</border>
<fill>#FFFF0000</fill>
</active>
</error>
</highlight>
</selection>
</snippet>
</code>
<graph>
<text>black</text>
<background>white</background>
<border>#3C3C3C</border>
<icon>black</icon>
<hatching>white</hatching>
<node>
<default>
<fill>
<normal>#ededed</normal>
</fill>
<border>
<normal>#3C3C3C</normal>
</border>
<text>
<normal>black</normal>
</text>
<icon>
<normal>black</normal>
</icon>
<hatching>
<normal>white</normal>
</hatching>
</default>
<type>
<normal>#ededed</normal>
<hover>#ededed</hover>
<border>
<normal>#203C3C3C</normal>
<focus>#3C3C3C</focus>
</border>
</type>
<class>
<normal>#ededed</normal>
<hover>#ededed</hover>
<like>type</like>
</class>
<struct>
<normal>#ededed</normal>
<hover>#ededed</hover>
<like>type</like>
</struct>
<enum>
<normal>#ededed</normal>
<hover>#ededed</hover>
<like>type</like>
</enum>
<typedef>
<normal>#ededed</normal>
<hover>#ededed</hover>
<like>type</like>
</typedef>
<template_parameter_type>
<normal>#ededed</normal>
<hover>#ededed</hover>
<like>type</like>
</template_parameter_type>
<function>
<normal>#F4D07D</normal>
<hover>#F4BC3D</hover>
<fill>
<normal>#F4D07D</normal>
<focus>#F4BC3D</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#3C3C3C</focus>
</border>
</function>
<method>
<normal>#F4D07D</normal>
<hover>#F4BC3D</hover>
<like>function</like>
</method>
<field>
<normal>#7BB5D4</normal>
<hover>#42A1D4</hover>
</field>
<global_variable>
<normal>#7BB5D4</normal>
<hover>#42A1D4</hover>
<fill>
<normal>#7BB5D4</normal>
<focus>#42A1D4</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#3C3C3C</focus>
</border>
</global_variable>
<field>
<like>global_variable</like>
</field>
<enum_constant>
<normal>#7BB5D4</normal>
<hover>#42A1D4</hover>
<like>global_variable</like>
</enum_constant>
<undefined>
<normal>#CC8D91</normal>
<hover>#CC8D91</hover>
<fill>
<normal>#00000000</normal>
</fill>
<border>
<normal>#CC8D91</normal>
</border>
</undefined>
<namespace>
<normal>#CC8D91</normal>
<hover>#CC8D91</hover>
<like>undefined</like>
</namespace>
<file>
<normal>#DDD</normal>
<hover>#CCC</hover>
<fill>
<normal>#DDD</normal>
<focus>#CCC</focus>
</fill>
<border>
<normal>#203C3C3C</normal>
<focus>#3C3C3C</focus>
</border>
</file>
<macro>
<normal>#DDD</normal>
<hover>#CCC</hover>
<like>file</like>
</macro>
<access>
<fill>
<normal>white</normal>
</fill>
</access>
<bundle>
<fill>
<normal>white</normal>
</fill>
<border>
<normal>#803C3C3C</normal>
<focus>#3C3C3C</focus>
</border>
</bundle>
<count_number>
<fill>
<normal>white</normal>
</fill>
<border>
<normal>#7C7C7C</normal>
</border>
<text>
<normal>#5C5C5C</normal>
</text>
</count_number>
</node>
<edge>
<type_of>
<default>
<normal>#878787</normal>
<hover>#878787</hover>
</type_of>
<return_type>
<normal>#878787</normal>
<hover>#878787</hover>
</return_type>
<parameter_type>
<normal>#878787</normal>
<hover>#878787</hover>
</parameter_type>
<type_use>
<normal>#878787</normal>
<hover>#878787</hover>
</type_use>
<inheritance>
<normal>#878787</normal>
<hover>#878787</hover>
</inheritance>
<typedef>
<normal>#878787</normal>
<hover>#878787</hover>
</typedef>
</default>
<override>
<normal>#CC5E89</normal>
<hover>#CC5E89</hover>
</override>
<call>
<normal>#F4BC3D</normal>
<hover>#F4BC3D</hover>
</call>
<use>
<normal>#3190BA</normal>
<hover>#3190BA</hover>
</use>
<template_parameter>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
</template_parameter>
<template_argument>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
<like>template_parameter</like>
</template_argument>
<template_default_argument>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
<like>template_parameter</like>
</template_default_argument>
<template_specialization>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
<like>template_parameter</like>
</template_specialization>
<include>
<normal>#878787</normal>
<hover>#878787</hover>
</include>
<template_member_specialization>
<like>template_parameter</like>
</template_member_specialization>
<aggregation>
<normal>#EEE</normal>
<hover>#DDD</hover>
<focus>#DDD</focus>
</aggregation>
<macro_use>
<normal>#878787</normal>
<hover>#878787</hover>
</macro_use>
</edge>
</graph>
<tool_tip>
<text>black</text>
<background>#E0E0E0</background>
</tool_tip>
</config>
+154 -88
View File
@@ -62,7 +62,7 @@
</file>
<snippet>
<background>transparent</background>
<background>#272728</background>
<title>
<text>#A0A0A0</text>
@@ -72,7 +72,7 @@
<line_number>
<text>#F7F7F7</text>
<background>transparent</background>
<background>#272728</background>
</line_number>
<syntax>
@@ -86,173 +86,239 @@
<function>#D69C36</function>
</syntax>
<highlight>
<selection>
<location>
<normal>#20EBEBEB</normal>
<hover>#40B6D1DD</hover>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>#B2B2B2</border>
<fill>transparent</fill>
</focus>
<active>
<border>#B2B2B2</border>
<fill>#4A4A4A</fill>
</active>
</location>
<scope>
<normal>#10E4EEF2</normal>
<hover>#18E4EEF2</hover>
<normal>
<border>transparent</border>
<fill>transparent</fill>
</normal>
<focus>
<border>transparent</border>
<fill>transparent</fill>
</focus>
<active>
<border>transparent</border>
<fill>transparent</fill>
</active>
</scope>
<error>
<normal>#A0FF0000</normal>
<hover>#FFFF0000</hover>
<normal>
<border>transparent</border>
<fill>#A0FF0000</fill>
</normal>
<focus>
<border>transparent</border>
<fill>#FFFF0000</fill>
</focus>
<active>
<border>transparent</border>
<fill>#FFFF0000</fill>
</active>
</error>
</highlight>
</selection>
</snippet>
</code>
<graph>
<text>#F7F7F7</text>
<border>#C3C3C3</border>
<background>#272728</background>
<icon>#F7F7F7</icon>
<hatching>#272728</hatching>
<node>
<default>
<fill>
<normal>#4D4D4D</normal>
</fill>
<border>
<normal>#C3C3C3</normal>
</border>
<text>
<normal>#F7F7F7</normal>
</text>
<icon>
<normal>#F7F7F7</normal>
</icon>
<hatching>
<normal>#272728</normal>
</hatching>
</default>
<type>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</type>
<class>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</class>
<struct>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</struct>
<enum>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</enum>
<typedef>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</typedef>
<template_parameter_type>
<normal>#4D4D4D</normal>
<hover>#4D4D4D</hover>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</template_parameter_type>
<function>
<normal>#7A681F</normal>
<hover>#9C8528</hover>
<fill>
<normal>#7A681F</normal>
<focus>#9C8528</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#C3C3C3</focus>
</border>
</function>
<method>
<normal>#7A681F</normal>
<hover>#9C8528</hover>
<like>function</like>
</method>
<field>
<normal>#21516B</normal>
<hover>#2A6484</hover>
</field>
<global_variable>
<normal>#21516B</normal>
<hover>#2A6484</hover>
<fill>
<normal>#21516B</normal>
<focus>#2A6484</focus>
</fill>
<border>
<normal>transparent</normal>
<focus>#C3C3C3</focus>
</border>
</global_variable>
<field>
<like>global_variable</like>
</field>
<enum_constant>
<normal>#21516B</normal>
<hover>#2A6484</hover>
<like>global_variable</like>>
</enum_constant>
<undefined>
<normal>#78282D</normal>
<hover>#78282D</hover>
<fill>
<normal>#00000000</normal>
</fill>
<border>
<normal>#78282D</normal>
</border>
</undefined>
<namespace>
<normal>#78282D</normal>
<hover>#78282D</hover>
<like>undefined</like>
</namespace>
<file>
<normal>#1B564E</normal>
<hover>#247368</hover>
<fill>
<normal>#1B564E</normal>
<focus>#247368</focus>
</fill>
<border>
<normal>#20C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</file>
<macro>
<normal>#1B564E</normal>
<hover>#247368</hover>
<like>file</like>
</macro>
<access>
<fill>
<normal>#272728</normal>
</fill>
</access>
<bundle>
<fill>
<normal>#272728</normal>
</fill>
<border>
<normal>#80C3C3C3</normal>
<focus>#C3C3C3</focus>
</border>
</bundle>
<count_number>
<fill>
<normal>#272728</normal>
</fill>
<border>
<normal>#C3C3C3</normal>
</border>
<text>
<normal>#F7F7F7</normal>
</text>
</count_number>
</node>
<edge>
<type_of>
<default>
<normal>#797979</normal>
<hover>#797979</hover>
</type_of>
<return_type>
<normal>#797979</normal>
<hover>#797979</hover>
</return_type>
<parameter_type>
<normal>#797979</normal>
<hover>#797979</hover>
</parameter_type>
<type_use>
<normal>#797979</normal>
<hover>#797979</hover>
</type_use>
<inheritance>
<normal>#797979</normal>
<hover>#797979</hover>
</inheritance>
<typedef>
<normal>#797979</normal>
<hover>#797979</hover>
</typedef>
</default>
<override>
<normal>#CC5E89</normal>
<hover>#CC5E89</hover>
</override>
<call>
<normal>#9C8528</normal>
<hover>#9C8528</hover>
</call>
<use>
<normal>#2A6484</normal>
<hover>#2A6484</hover>
</use>
<template_parameter>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
</template_parameter>
<template_argument>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
</template_argument>
<template_default_argument>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
</template_default_argument>
<template_specialization>
<normal>#C1305D</normal>
<hover>#C1305D</hover>
</template_specialization>
<template_member_specialization>
<normal>#C1305D</normal>
</template_member_specialization>
<include>
<normal>#247368</normal>
<hover>#247368</hover>
</include>
<macro_use>
<normal>#247368</normal>
</macro_use>
<aggregation>
<normal>#5D5D5D</normal>
<hover>#6D6D6D</hover>
<focus>#6D6D6D</focus>
</aggregation>
<macro_use>
<normal>#247368</normal>
<hover>#247368</hover>
</macro_use>
</edge>
</graph>
<tool_tip>
<text>#F7F7F7</text>
<background>#777777</background>
</tool_tip>
</config>
+23
View File
@@ -0,0 +1,23 @@
* {
color: white;
font-size: 12px;
font-weight: 100;
}
#small {
font-size: 12px;
}
#closeButton {
background: transparent;
border: none;
color: white;
font-size: 14pt;
height: 20px;
width: 20px;
}
#closeButton:hover {
border: 2px solid white;
border-radius: 10px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

-6
View File
@@ -130,9 +130,3 @@
#code_file #minimize_button:enabled {
border-image: url(data/gui/code_view/images/minimize_active.png);
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

@@ -1,9 +1,3 @@
QGraphicsView, QGraphicsScene {
background-color: <color:graph/background>;
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

+98
View File
@@ -0,0 +1,98 @@
{\rtf1\ansi\ansicpg1252\deff0\deflang3079{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang7\f0\fs22 Coati\par
Software License Agreement\par
Effective 1.1.2016\par
\par
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.\par
\par
\par
\b DEFINITIONS\b0\par
\par
"Software" means:\par
\bullet\tab A major version of Coati in executable form. The major version is defined by the leading number of the version string (e.g. the major version of Coati 1.x.x.x is version 1); \par
\bullet\tab documentation for that major version of Coati;\par
\bullet\tab 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 Coati 1.0.0.0 to Coati 1.0.1.4).\par
"Licensor" means:\par
\bullet\tab Coati Software OG, having a place of business at Schlossallee 7/1, 5412 Puch/Hallein, Austria.\par
"Licensee" means:\par
\bullet\tab the individual evaluating the trial version of the Software;\par
\bullet\tab the company, corporation, or organization that purchased a License(s) for the Software;\par
\bullet\tab the individual who purchased a License for the Software.\par
"Activation Key" means:\par
\bullet\tab the name of the Licensee, the kind of license, the major version of the software that is licensed, and a hashcode; the combination of these values allows the Licensee to activate a genuine copy of the Software.\par
"Authorized User" means:\par
\bullet\tab the individual evaluating the Software during a trial;\par
\bullet\tab 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;\par
\bullet\tab the individual who purchased a License for the Software; the individual is the only Authorized User.\par
\par
\par
\b GRANT\b0\par
\par
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:\par
\bullet\tab the Licensee to distribute (an) Activation Key(s) to Authorized User(s);\par
\bullet\tab 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);\par
\bullet\tab Authorized User(s) to use the Software on computer PCs, in virtual machines, in combination with multiple IDEs, and in combination with multiple instances of an IDE;\par
\bullet\tab Authorized User(s) to use the trial version of the software in order to examine the provided example project;\par
\bullet\tab Licensee to make a copy of the Software for archival purposes provided the copy contains all of the proprietary notices of the Software.\par
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.\par
\par
\par
\b RESTRICTIONS\b0\par
\par
Licensee will not, and will have no right to:\par
\bullet\tab use the trial version of the software for any commercial purposes;\par
\bullet\tab distribute, use, or transfer an Activation Key(s) that has been superseded by an Activation Key(s) provided with software maintenance;\par
\bullet\tab 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;\par
\bullet\tab sell, rent, lease, distribute, or otherwise transfer rights to the Software without prior written consent from Licensor;\par
\bullet\tab remove any proprietary notices or labels from the Software.\par
\par
\par
\b TITLE AND COPYRIGHT\par
\b0\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 States copyright laws and international treaty provisions.\par
\par
\par
\b DISCLAIMER OF WARRANTY\b0\par
\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 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.\par
\par
\par
\b LIMITATION OF LIABILITY\par
\b0\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, 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.\par
\par
\par
\b TERMINATION\par
\b0\par
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.\par
\par
\par
\b EXPORT CONTROLS\par
\b0\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\'dfenwirtschaftsgesetz 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.\par
\par
\par
\b THIRD PARTY CREDITS\par
\b0\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 \ldblquote Licenses\rdblquote dialog for the Software. Licensee agrees that use of such copyrighted materials is governed by their respective terms.\par
\par
\par
\b ENTIRE AGREEMENT\par
\b0\par
This Agreement represents the complete agreement concerning this license 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 EULA at its discretion at any time, with reasonable notice to you by posting the new EULA at the following URL: {\field{\*\fldinst{HYPERLINK "http://www.coati.io/"}}{\fldrslt{\ul\cf1 http://www.coati.io/}}}\f0\fs22 . 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.\par
\par
\par
\b CONTACT\par
\b0\par
If you have questions regarding this agreement, contact:\par
\par
Coati Software OG\par
Schlossallee 7/1\par
5412 Puch/Hallein\par
Austria\par
\par
support@coati.io\par
\par
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+17
View File
@@ -0,0 +1,17 @@
#licenseField {
font-family: "<setting:font_name>";
font-size: 12pt;
height: 200px;
padding: 5px;
width: 470px;
}
#licenseError {
color: red;
}
QTextEdit {
background-color: rgba(255, 255, 255, 200);
border-radius: 10px;
border: 1px solid lightgrey;
}
@@ -27,9 +27,3 @@ QPushButton:pressed {
border-bottom-right-radius: 12px;
border-top-right-radius: 12px;
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
@@ -57,9 +57,3 @@ QPushButton#search_button {
#search_button:pressed {
background: <color:search/button/press>;
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
+3 -10
View File
@@ -12,14 +12,12 @@ QListWidget {
QListWidget::item {
border-bottom: 1px solid lightgray;
height: 20px;
}
QListWidget::item:selected {
background-color: #EEE;
}
QtListItemWidget #field {
background-color: transparent;
border: none;
@@ -29,8 +27,9 @@ QtListItemWidget #field {
QtListItemWidget #button {
border: 1px solid lightgray;
border-radius: 8px;
border-radius: 7px;
font-size: 12px;
margin-bottom: 2px;
margin-top: 2px;
margin-right: 2px;
width: 20px;
@@ -46,17 +45,11 @@ QtListItemWidget #button:hover {
}
#roundedButton {
background: dimgray;
border-radius: 8px;
color: white;
font-size: 15px;
height: 16px;
margin-right: 3px;
width: 16px;
}
#roundedButton:hover {
background: gray;
border: none;
}
#dropInfo {
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -31,6 +31,20 @@ QLineEdit:disabled {
font-weight: bold;
}
#form #help {
background: transparent;
border: 1px solid #575656;
border-radius: 9px;
color: #575656;
height: 16px;
width: 16px;
}
#form #help:hover {
border-color: black;
color: black;
}
#moreButton {
background-color: rgba(255, 255, 255, 200);
border: 1px solid lightgray;
@@ -61,3 +75,7 @@ QLineEdit:disabled {
color: white;
background: #2D3F85;
}
#windowButton:disabled {
color: lightgray;
}
@@ -27,9 +27,3 @@
font-size: 16pt;
font-weight: bold;
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+5
View File
@@ -0,0 +1,5 @@
QToolTip {
background-color: #E0E0E0;
color: black;
font-size: <setting:font_size>pt;
}
@@ -32,9 +32,3 @@ QPushButton:hover {
QPushButton:pressed {
background: <color:search/button/press>;
}
QToolTip {
background-color: <color:tool_tip/background>;
color: <color:tool_tip/text>;
font-size: <setting:font_size>pt;
}
+1
View File
@@ -0,0 +1 @@
%windir%\system32\msiexec.exe /I{2A3B2FF5-A114-4CAB-88FB-DE8942D5B8EB}
@@ -0,0 +1,67 @@
#include "artificial_player.h"
ArtificialPlayer::ArtificialPlayer( Field::Token token, const char* name )
: Player( token, name ) {
}
ArtificialPlayer::~ArtificialPlayer() {
}
Field::Move ArtificialPlayer::Turn( const Field& field ) const {
Field fakeField = field.Clone();
Node node = MinMax( fakeField, token_ );
return node.move;
}
ArtificialPlayer::Node ArtificialPlayer::MinMax( Field& field, Field::Token token ) const {
Node node;
node.value = -10000;
Field::Move move;
int sameMove;
for ( int i = 0; i < 3; i++ ) {
move.row = i;
for ( int j = 0; j < 3; j++ ) {
move.col = j;
if ( !field.IsEmpty( move ) ) {
continue;
}
field.MakeMove( move, token );
int turnValue = Evaluate( field, token );
if ( !turnValue && !field.IsFull() ) {
turnValue = -MinMax( field, Field::Opponent( token ) ).value;
}
field.ClearMove( move );
if ( turnValue > node.value ) {
node.move = move;
node.value = turnValue;
sameMove = 1;
} else if ( turnValue == node.value ) {
sameMove++;
if ( 1 % sameMove == 0 ) {
node.move = move;
}
}
}
}
return node;
}
int ArtificialPlayer::Evaluate( const Field& field, Field::Token token ) const {
if ( field.SameInRow( token, 3 ) ) {
return 2;
} else if ( field.SameInRow( Field::Opponent( token ), 2 ) ) {
return -1;
} else if ( field.SameInRow( token, 2 ) > 1 ) {
return 1;
}
return 0;
}
@@ -0,0 +1,24 @@
#ifndef _ARTIFICIAL_PLAYER_
#define _ARTIFICIAL_PLAYER_
#include "player.h"
class ArtificialPlayer : public Player {
public:
ArtificialPlayer( Field::Token token, const char* name );
virtual ~ArtificialPlayer();
virtual Field::Move Turn( const Field& field ) const;
private:
struct Node {
Field::Move move;
int value;
};
Node MinMax( Field& field, Field::Token token ) const;
int Evaluate( const Field& field, Field::Token token ) const;
};
#endif // _ARTIFICIAL_PLAYER_
@@ -0,0 +1,126 @@
#include "field.h"
#include "io.h"
Field::Token Field::Opponent( Token token ) {
if ( token == PlayerA ) {
return PlayerB;
} else if (token == PlayerB){
return PlayerA;
} else {
return None;
}
}
Field::Field()
: left_( 9 ) {
grid_ = new Token* [3];
for ( int i = 0; i < 3 ; i++ ) {
grid_[i] = new Token[3];
}
}
Field::~Field() {
for ( int i = 0; i < 3; i++ ) {
delete [] grid_[i];
}
delete [] grid_;
}
Field Field::Clone() const {
Field field;
for ( int i = 0; i < 3; i++ ) {
for ( int j = 0; j < 3; j++ ) {
field.grid_[i][j] = grid_[i][j];
}
}
field.left_ = left_;
return field;
}
void Field::Clear() {
for ( int i = 0; i < 3; i++ ) {
for ( int j = 0; j < 3; j++ ) {
grid_[i][j] = None;
}
}
left_ = 9;
}
void Field::Show() const {
io::stringOut(" 1 2 3\n");
for ( int row = 0; row < 3; row++ ) {
io::numberOut(row + 1);
io::stringOut(" ");
for ( int col = 0; col < 3; col++ ) {
if ( grid_[row][col] == PlayerA ) {
io::stringOut(" X ");
} else if ( grid_[row][col] == PlayerB ) {
io::stringOut(" O ");
} else {
io::stringOut(" ");
}
if ( col < 2 ) {
io::stringOut("|");
}
}
if ( row < 2 ) {
io::stringOut("\n -----------\n");
}
}
io::stringOut("\n\n");
}
int Field::SameInRow( Token token, int amount ) const {
int sum = amount * token;
int count = 0;
for ( int i = 0; i < 3; i++ ) {
if ( grid_[i][0] + grid_[i][1] + grid_[i][2] == sum ) {
count++;
} else if ( grid_[0][i] + grid_[1][i] + grid_[2][i] == sum ) {
count++;
}
}
if ( grid_[0][0] + grid_[1][1] + grid_[2][2] == sum ) {
count++;
} else if ( grid_[2][0] + grid_[1][1] + grid_[0][2] == sum ) {
count++;
}
return count;
}
bool Field::InRange( const Move& move ) const {
return move.row >= 0 && move.row < 3 && move.col >= 0 && move.col < 3;
}
bool Field::IsEmpty( const Move& move ) const {
return grid_[move.row][move.col] == None;
}
bool Field::IsFull() const {
return left_ == 0;
}
void Field::MakeMove( const Move& move, Token token ) {
if ( !InRange( move ) || !IsEmpty( move ) || token == None || !left_ ) {
return;
}
grid_[move.row][move.col] = token;
left_--;
}
void Field::ClearMove( const Move& move ) {
if ( !InRange( move ) || !IsEmpty( move ) || left_ == 9 ) {
return;
}
grid_[move.row][move.col] = None;
left_++;
}
@@ -0,0 +1,41 @@
#ifndef _FIELD_
#define _FIELD_
class Field {
public:
enum Token {
None = 0,
PlayerA = 1,
PlayerB = 4
};
static Token Opponent( Token token );
struct Move {
int row;
int col;
};
Field();
~Field();
Field Clone() const;
void Clear();
void Show() const;
int SameInRow( Token token, int amount ) const;
bool InRange( const Move& move ) const;
bool IsEmpty( const Move& move ) const;
bool IsFull() const;
void MakeMove( const Move& move, Token token );
void ClearMove( const Move& move );
private:
Token** grid_;
int left_;
};
#endif // _FIELD_
@@ -0,0 +1,49 @@
#include "human_player.h"
#include "io.h"
HumanPlayer::HumanPlayer( Field::Token token, const char* name )
: Player( token, name ) {
}
HumanPlayer::~HumanPlayer() {
}
Field::Move HumanPlayer::Turn( const Field& field ) const {
Field::Move move;
io::stringOut(name_);
io::stringOut("\n");
do {
move = Input();
move.row -= 1;
move.col -= 1;
} while ( !Check( field, move ) );
return move;
}
Field::Move HumanPlayer::Input() const {
Field::Move move;
move.row = -1;
move.col = -1;
io::stringOut("Insert row: ");
move.row = io::numberIn();
io::stringOut("Insert column: ");
move.col = io::numberIn();
io::stringOut("\n");
return move;
}
bool HumanPlayer::Check( const Field& field, const Field::Move& move ) const {
if ( !field.InRange( move ) ) {
io::stringOut("Wrong input!\n");
return false;
} else if ( !field.IsEmpty( move ) ) {
io::stringOut("Is occupied!\n");
return false;
}
return true;
}
@@ -0,0 +1,19 @@
#ifndef _HUMAN_PLAYER_
#define _HUMAN_PLAYER_
#include "player.h"
class HumanPlayer : public Player {
public:
HumanPlayer( Field::Token token, const char* name );
virtual ~HumanPlayer();
virtual Field::Move Turn( const Field& field ) const;
private:
Field::Move Input() const;
bool Check( const Field& field, const Field::Move& move ) const;
};
#endif // _HUMAN_PLAYER_
@@ -0,0 +1,23 @@
#include "io.h"
// #include <iostream>
// #include <sstream>
// #include <string>
int io::numberIn() {
// std::string input;
// getline( std::cin, input );
// std::stringstream stream( input );
int number;
// stream >> number;
return number;
}
void io::numberOut(int num) {
// std::cout << num;
}
void io::stringOut(const char* str) {
// std::cout << str;
}
+13
View File
@@ -0,0 +1,13 @@
#ifndef _IO_
#define _IO_
namespace io {
int numberIn();
void numberOut(int num);
void stringOut(const char* str);
}
#endif // _IO_
@@ -0,0 +1,11 @@
#include "tictactoe.h"
int main() {
TicTacToe tictactoe;
while ( tictactoe.Start() ) {
tictactoe.Run();
}
return 0;
}
@@ -0,0 +1,19 @@
#include "player.h"
Player::Player( Field::Token token, const char* name )
: token_( token )
, name_( name ) {
}
Player::~Player() {
}
const Field::Token& Player::getToken() const
{
return token_;
}
const char* Player::getName() const
{
return name_;
}
@@ -0,0 +1,21 @@
#ifndef _PLAYER_
#define _PLAYER_
#include "field.h"
class Player {
public:
Player( Field::Token token, const char* name );
virtual ~Player();
virtual Field::Move Turn( const Field& field ) const = 0;
const Field::Token& getToken() const;
const char* getName() const;
protected:
const Field::Token token_;
const char* name_;
};
#endif // _PLAYER_
@@ -0,0 +1,85 @@
#include "tictactoe.h"
#include "artificial_player.h"
#include "human_player.h"
#include "io.h"
TicTacToe::TicTacToe() {
players_[0] = 0;
players_[1] = 0;
}
TicTacToe::~TicTacToe() {
Reset();
}
bool TicTacToe::Start() {
Reset();
io::stringOut("Tic Tac Toe\n\n[1] Human\n[2] Computer\n[3] Quit\n\n");
players_[0] = SelectPlayer( Field::PlayerA, "Player A" );
if ( !players_[0] ) {
return false;
}
players_[1] = SelectPlayer( Field::PlayerB, "Player B" );
if ( !players_[1] ) {
return false;
}
io::stringOut("\n");
return true;
}
void TicTacToe::Run() {
field_.Show();
int playerIndex = 0;
for ( int i = 0; i < 9; i++ ) {
Player& player = *players_[playerIndex];
field_.MakeMove( player.Turn( field_ ), player.getToken() );
field_.Show();
if ( field_.SameInRow( player.getToken(), 3 ) ) {
io::stringOut(player.getName());
io::stringOut(" won!\n\n");
return;
}
playerIndex = ( playerIndex + 1 ) % 2;
}
io::stringOut("Game ends in draw!\n\n");
}
void TicTacToe::Reset() {
field_.Clear();
for ( int i = 0; i < 2; i++ ) {
if ( players_[i] ) {
delete players_[i];
players_[i] = 0;
}
}
}
Player* TicTacToe::SelectPlayer( Field::Token token, const char* name ) const {
int selection = 0;
while ( true ) {
io::stringOut("Choose ");
io::stringOut(name);
io::stringOut(": ");
selection = io::numberIn();
switch ( selection ) {
case 1 : return new HumanPlayer( token, name );
case 2 : return new ArtificialPlayer( token, name );
case 3 : return 0;
default : io::stringOut("Wrong input!\n");
}
}
}
@@ -0,0 +1,23 @@
#ifndef _TIC_TAC_TOE_
#define _TIC_TAC_TOE_
#include "field.h"
#include "player.h"
class TicTacToe {
public:
TicTacToe();
~TicTacToe();
bool Start();
void Run();
private:
void Reset();
Player* SelectPlayer( Field::Token token, const char* name ) const;
Player* players_[2];
Field field_;
};
#endif // _TIC_TAC_TOE_
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<config>
<language_settings>
<language>C++</language>
<standard>11</standard>
</language_settings>
<source>
<source_paths>
<source_path>./src</source_path>
</source_paths>
</source>
</config>
@@ -0,0 +1,33 @@
#ifndef CODE_TUTORIAL_1_H
#define CODE_TUTORIAL_1_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 1 - THE CODE TUTORIAL
// As you already know the code view displays the snippets of code that are
// related to your currently active symbol. These snippets show the relevant
// lines in combination with some context.
// In case you discover something interesting as part of the snippet's context
// you can activate that symbol with a left-click. That way you dig deeper
// through your code base.
// Have you ever wondered what's the meaning of life, the universe and
// everything? Click the respective symbol to find out.
//
//------------------------------------------------------------------------------
class CodeTutorial
{
public:
CodeTutorial()
{
}
static int meaning_of_life_the_universe_and_everything;
};
#endif // CODE_TUTORIAL_1_H
@@ -0,0 +1,63 @@
#ifndef CODE_TUTORIAL_2_H
#define CODE_TUTORIAL_2_H
#include "code_tutorial_1.h"
//------------------------------------------------------------------------------
//
// 5 - NO MORE CONTEXT
// At this stage you see the entire file and no more context can be expanded.
// For the final part of this introduction please have a look at where the
// "unrelated_but_very_important()" function is used.
//
//------------------------------------------------------------------------------
void unrelated_but_very_important()
{
};
int calculate(int (*problem)())
{
return problem();
}
//------------------------------------------------------------------------------
//
// 4 - MORE CONTEXT
// Who would have expected such a simple question?
// Note that expanding the view didn't change the active symbol. You can
// proceed expanding the view until you hit the level of the file scope.
// So go ahead and find out what else is hidden inside this file!
//
//------------------------------------------------------------------------------
void deep_thought()
{
int (*the_question)() = [](){ return 6 * 7; };
//------------------------------------------------------------------------------
//
// 2 - CONTEXT
// We just talked about Coati providing context to the important lines of code.
// But it feels like something is missing here. What is "the_question"? And
// where does it come from?
//
// 3 - EXPANDING TO SCOPES
// Do you see the first line of this snippet? I mean the one that has just two
// dots as line number and reads "deep_thought". Actually that's the name of
// the function's scope that encapsulates the snippet. By clicking that line
// you can tell Coati to expand the view to show the entire scope.
// Give it a try!
//
//------------------------------------------------------------------------------
int the_answer = calculate(the_question);
CodeTutorial::meaning_of_life_the_universe_and_everything = the_answer;
}
#endif // CODE_TUTORIAL_2_H
@@ -0,0 +1,62 @@
#ifndef CODE_TUTORIAL_3_H
#define CODE_TUTORIAL_3_H
#include "the_central_hub.h"
#include "code_tutorial_2.h"
//------------------------------------------------------------------------------
//
// 6 - SNIPPETS AND FILES
// It looks like this function is called in two different places inside the
// same file. When two different snippets are located in the same file they
// share a single file box. The line numbers to the left indicate where each of
// these snippets is located inside the file.
//
// 7 - MERGING SNIPPETS
// The top line of each snippet shows the name of its own parent's scope.
// If you want to show the lines in between the two snippets below you can
// either expand the upper snippet's scope to show the whole file or you can
// tell the lower snippet to reveal its scope.
// Try one of these approaches now.
//
//------------------------------------------------------------------------------
void function_with_snippets()
{
unrelated_but_very_important();
//------------------------------------------------------------------------------
//
// 8 - YOU FOUND THE HIDDEN COMMENT
// Well done! As you see Coati merged the two snippets from before because
// expanding a scope would have caused them to overlap. That's all for the code
// view tutorial.
//
// 9 - EDIT YOUR CODE
// In case you wondered if you can edit your code using Coati: You can't. Coati
// is designed for code exploration, not as a text editor or an IDE. But there
// is a chance that Coati can talk to your favourite editor (that you already
// know how to operate) via plugin. For more information about available
// plugins please take a look at Coati's user manual.
//
// We hope you enjoyed this tutorial. You can follow the call below to get back
// to the central hub.
//
// P.S.
// You can also click the file name above (i guess you need to scroll up a
// little bit) to activate the file's node in case you want to explore your
// include hierarchy.
//
//------------------------------------------------------------------------------
the_central_hub();
unrelated_but_very_important();
};
#endif // CODE_TUTORIAL_3_H
@@ -0,0 +1,37 @@
#ifndef GRAPH_TUTORIAL_1_H
#define GRAPH_TUTORIAL_1_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 1 - THE GRAPH TUTORIAL
// In Coati's default window layout the graph is shown to the left, next to the
// code. It displays the structure of your project where all named symbols are
// nodes and all relations are edges. Like the code view it shows only the
// currently active symbol and all the incoming and outgoing dependencies.
//
// 2 - HOW DO I NAVIGATE THE GRAPH
// You can activate a new symbol by left-clicking on the node you are
// interested in. For example: to find out where the function
// "where_am_i_called()" is called get over to the graph and click that
// function's node.
//
//------------------------------------------------------------------------------
class GraphTutorial
{
public:
GraphTutorial()
{
}
static void where_am_i_called()
{
}
};
#endif // GRAPH_TUTORIAL_1_H
@@ -0,0 +1,66 @@
#ifndef GRAPH_TUTORIAL_2_H
#define GRAPH_TUTORIAL_2_H
#include "graph_tutorial_1.h"
//------------------------------------------------------------------------------
//
// 3 - WELL DONE
// You activated a node and both, the graph and the code view have been updated
// accordingly.
// Note that even though Coati provides a graph view it does not remove the
// need for reading code. The graph view is great for gaining a quick overview
// on relations and navigating code, but once you found something you are
// interested in you should still consider the code view to actually read up on
// all the important details.
//
// 4 - HIDDEN ELEMENTS
// In order not to flood you with information the graph is hiding a lot of
// elements. Do you see the "ClassWithHiddenMembers" for example? It actually
// contains more members than you currently see. Members that are not important
// for the current context are hidden. Nevertheless you can reveal them by
// clicking the arrow next the the class name. Try that now and read those
// members' names.
//
//------------------------------------------------------------------------------
class ClassWithHiddenMembers
{
public:
void potential_caller()
{
GraphTutorial::where_am_i_called();
}
void now_you_see_all_contents_of_this_class()
{
}
void coati_uses_different_colors()
{
}
void to_distinguish_between_functions()
{
}
int and_variables;
int to_continue_click;
//------------------------------------------------------------------------------
//
// 5 - RELATIONS
// As you see in the graph, this member is accessed at quite some places
// throughout the code base. Lets say you wonder what code causes the edge
// between "reading" and "this_last_member" to appear. What will happen if you
// click the edge?
//
//------------------------------------------------------------------------------
static int this_last_member;
};
#endif // GRAPH_TUTORIAL_2_H
@@ -0,0 +1,39 @@
#ifndef GRAPH_TUTORIAL_3_H
#define GRAPH_TUTORIAL_3_H
#include "graph_tutorial_2.h"
class ProducerOfTheLastMember
{
public:
void go()
{
ClassWithHiddenMembers::this_last_member = 42;
}
void on()
{
ClassWithHiddenMembers::this_last_member++;
}
//------------------------------------------------------------------------------
//
// 6 - FOCUSING EDGES
// Even though Coati doesn't allow to activate an edge, you can still focus on
// edges. This doesn't change the currently active symbol (which would cause
// Coati to hide everything but the edge). Instead Coati just highlights the
// relation's location in the code and scrolls you there, so you don't lose
// context.
// Try to activate an edge that comes from the "ConsumerOfTheLastMember" class.
// Which one you pick doesn't really matter for this tutorial.
//
//------------------------------------------------------------------------------
void reading()
{
ClassWithHiddenMembers::this_last_member *= 2;
}
};
#endif // GRAPH_TUTORIAL_3_H
@@ -0,0 +1,48 @@
#ifndef GRAPH_TUTORIAL_4_H
#define GRAPH_TUTORIAL_4_H
#include "graph_tutorial_2.h"
#include "the_central_hub.h"
class ConsumerOfTheLastMember
{
public:
void in()
{
ClassWithHiddenMembers::this_last_member--;
}
//------------------------------------------------------------------------------
//
// 7 - THAT'S IT
// You completed the tutorial on the graph view. There is still more to learn
// but I guess you will figure it out on your own. One last thing: If you see
// an element with a hatched background please call us. It's a runaway!
// Just kidding. Those are elements that are used within your code, but without
// a definition anywhere in your source folder. So if you click them, Coati
// will display all the relations for the element, but the code view won't show
// a definition. If you want to learn more about Coati, go back to the central
// hub. It is called in the function below but you can also try to get there
// using only the graph.
//
//------------------------------------------------------------------------------
private:
void the()
{
if (ClassWithHiddenMembers::this_last_member <= 0);
{
the_central_hub();
}
}
void codeview()
{
ClassWithHiddenMembers::this_last_member /= 2;
}
};
#endif // GRAPH_TUTORIAL_4_H
@@ -0,0 +1,36 @@
#ifndef MAIN_H
#define MAIN_H
#include "my_first_step.h"
//------------------------------------------------------------------------------
//
// WHAT IS THIS?
// This is a tutorial and it is one of the fastest ways to get to know Coati.
//
// WHERE AM I?
// This is Coati's Code View and you are looking at the main function of this
// project's program.
//
// WHY AM I HERE?
// Every time you open up a project in Coati it will go through your project in
// search for a function called "main". In case this function is defined the
// corresponding symbol is activated. Otherwise Coati will just activate the
// first thing in your codebase it happens to stumble across.
//
// WHAT CAN I DO NOW?
// Left-click the "my_first_step()" function call inside the main function.
// Lets see what happens.
//
//------------------------------------------------------------------------------
int main()
{
my_first_step();
return 0;
}
#endif // MAIN_H
@@ -0,0 +1,34 @@
#ifndef MY_FIRST_STEP_H
#define MY_FIRST_STEP_H
#include "the_central_hub.h"
//------------------------------------------------------------------------------
//
// WHAT JUST HAPPENED?
// As I mentioned earlier, Coati knows the concept of an "active" symbol. You
// just changed the active symbol by clicking on the name of a function.
//
// OK, BUT WHAT IS AN ACTIVE SYMBOL?
// Coati doesn't show your entire code base on a single screen. Even for
// relatively small projects that would be pointless - trust me on that. So
// instead of showing everything at once, Coati keeps a strongly focused view
// on your code. This focus only includes the currently active symbol and its
// direct relations. Nothing more. By changing the active symbol as you just
// did, Coati allows you to jump through the code base on your own.
//
// I THINK I GOT IT!
// Now that you understand Coati's central concept you are ready to jump
// further by activating "the_central_hub()" of this tutorial.
//
//------------------------------------------------------------------------------
void my_first_step()
{
the_central_hub();
}
#endif // MY_FIRST_STEP_H
@@ -0,0 +1,30 @@
#ifndef SEARCH_TUTORIAL_1_H
#define SEARCH_TUTORIAL_1_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 1 - THE SEARCH TUTORIAL
// If you haven't messed up anything yet, you'll find the search bar to the
// upper left of Coati's user interface. Initially it shows the name of the
// currently active symbol.
// Use the shortcut "CTRL/CMD + F" to focus the search bar. You can also just
// click it. Try that now and enter the string "find_me_if_you_can" to search
// for the respective symbol. Press enter or click the magnification glass to
// execute the search.
//
//------------------------------------------------------------------------------
class SearchTutorial
{
public:
SearchTutorial()
{
}
};
#endif // SEARCH_TUTORIAL_1_H
@@ -0,0 +1,25 @@
#ifndef SEARCH_TUTORIAL_2_H
#define SEARCH_TUTORIAL_2_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 2 - THE AUTOCOMPLETION
// I hope you have been lazy enough to not enter the whole string from start to
// finish. So you already noticed Coati's autocompletion box.
// While you enter your search request Coati already tries to find a subset of
// matching symbols to help you get where you want pretty fast.
// But that's not all Coati does. Keep an eye on the search bar while entering
// the string "aux" and activate the symbol showing up.
//
//------------------------------------------------------------------------------
void finde_me_if_you_can()
{
}
#endif // SEARCH_TUTORIAL_2_H
@@ -0,0 +1,26 @@
#ifndef SEARCH_TUTORIAL_3_H
#define SEARCH_TUTORIAL_3_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 3 - FUZZY MATCHING
// While looking for matching symbols the search bar does not only consider
// strict matches to the entered substring. Instead it uses a more fuzzy
// approach. This is really helpful when you only have a rough idea of what the
// element you are really looking for is called.
// While showing the list of results the autocompletion also display the kind
// of each of the results to the very right.
// Try to activate the class with the name "NameConflict" next.
//
//------------------------------------------------------------------------------
void autocompletion_example()
{
}
#endif // SEARCH_TUTORIAL_3_H
@@ -0,0 +1,39 @@
#ifndef SEARCH_TUTORIAL_4_H
#define SEARCH_TUTORIAL_4_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 4 - WHAT ARE THE OTHER BUTTONS?
// Well done. Lets get over the other buttons left to the search bar really
// quick.
//
// 5 - UNDO AND REDO
// You can use the buttons to the very left to undo and redo your actions. This
// may seem odd since Coati doesn't include any features to actually change
// code. Instead Coati offers these buttons to help you navigate. So they
// really come in handy in case you ask yourself something like "How did I end
// up here?"
//
// 6 - REFRESH
// The next button allows you to refresh you project in case you changed some
// of your code. The second button toggels the auto-refresh option. When
// enabled Coati refreshes your project every time it's window gets focused.
//
// 7 - WHAT'S NEXT?
// Instead of the class activate the struct with the same name as before.
//
//------------------------------------------------------------------------------
namespace a
{
class NameConflict
{
};
}
#endif // SEARCH_TUTORIAL_4_H
@@ -0,0 +1,27 @@
#ifndef SEARCH_TUTORIAL_5_H
#define SEARCH_TUTORIAL_5_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// 8 - CONGRATULATONS
// You have completed the challenge of search.
// Oh, I almost forgot: You can only find nodes such as symbols via the search
// bar. It doesn't allow you to find edges like calls or inheritance. At least
// not yet.
// Try to get back to the the central hub using the search bar!
//
//------------------------------------------------------------------------------
namespace b
{
struct NameConflict
{
};
}
#endif // SEARCH_TUTORIAL_5_H
@@ -0,0 +1,33 @@
#ifndef START_EXPLORING_H
#define START_EXPLORING_H
#include "utility.h"
//------------------------------------------------------------------------------
//
// FURTHER EXPLORATION
// If you completed all the other tutorials you might want to put your new
// skills to use and do some exploration on your own.
// Here comes the bad news: Even though this tutorial contains some code that
// would compile, the code doesn't make much sense. So trying to explore this
// project any further would be rather unproductive.
// The good news is: In addition to this tutorial Coati also ships with a real
// example project that implements the game Tic-Tac-Toe! You can open the
// project via the "Project -> Recent Projects" menu.
// You can also start exploring your own projects by creating a new Coati
// project where you can add all your source and include paths.
//
//------------------------------------------------------------------------------
class StartExploring
{
public:
StartExploring()
{
}
};
#endif // START_EXPLORING_H
@@ -0,0 +1,32 @@
#ifndef THE_CENTRAL_HUB_H
#define THE_CENTRAL_HUB_H
#include "search_tutorial_1.h"
#include "graph_tutorial_1.h"
#include "code_tutorial_1.h"
#include "start_exploring.h"
//------------------------------------------------------------------------------
//
// THE HUB
// This is the central hub of Coati's tutorial. From here you can embark on
// short trips to explore the different parts of Coati. Most important: You
// will get to know how all the different parts of Coati interact.
// The function below references all the available tutorials. So pick one and
// jump right to action.
//
//------------------------------------------------------------------------------
void the_central_hub()
{
SearchTutorial* the_challenge_of_search;
GraphTutorial* reading_the_map;
CodeTutorial* explore_the_details;
StartExploring* going_beyond_this_tutorial;
}
#endif // THE_CENTRAL_HUB_H
@@ -0,0 +1,8 @@
#ifndef UTILITY_H
#define UTILITY_H
typedef unsigned int uint;
#endif // UTILITY_H
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<config>
<info>
<description>
This is the tutorial project of Coati.\nIt will introduce you to Coati's user interface.\nPlease click on the function [main] below to start the tutorial\n\n[main](); // &lt;- start here\n\n
</description>
</info>
<source>
<extensions>
<header_extensions>.h</header_extensions>
<source_extensions>.cpp</source_extensions>
</extensions>
<source_paths>
<source_path>./src</source_path>
</source_paths>
</source>
</config>
+16
View File
@@ -0,0 +1,16 @@
void lambdaCaller()
{
[](){}();
}
void lambdaSuperCaller()
{
lambdaCaller();
}
void lambdaMetaCaller()
{
[](){
lambdaCaller();
}();
}
+17
View File
@@ -0,0 +1,17 @@
/* hallo */
int a; /* hallo */
int b = 6/3/2; /* hallo */
//*
int c;
//*/
// /*
int d;
// */
/*
hallo
// */ int e = 0;
+1
View File
@@ -21,6 +21,7 @@ int calculate(int i)
return a;
}
#define PI 3.1415
#define CALL_CALCULATE() \
do \
+1 -1
View File
@@ -22,7 +22,7 @@ Field::Field()
Field::~Field() {
for ( int i = 0; i < 3; i++ ) {
delete grid_[i];
delete [] grid_[i];
}
delete [] grid_;
}
BIN
View File
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
-----BEGIN LICENSE-----
asdf;lkjas;ldkfj;alsdkfj;alskdfasdflkjlksjlkdfasdfoiupqwernkljoviopizpoxcuivojqwoenr;soidfooiaupoiay
Single User License
Coati 0
$9$AQAKZ6/FMxHq850YPk5GfWSYRWZv+x1mgB5B6/OPz7D7mOfCvowH
hctPm+tJfoiFhSamiyBuTe4jbtIvvyZShK1B1OKfG1C+lOboSZh2HJn
6cBdiKE6ZfrymDngPUE23lm/JPIJwlZjvPTcd/N3YusUs0aqiTEXfHu
G/c34NYI5AIbute6xQjY6Q0cLdZcOHqSBfGxZrZTl9q6yVcM6B2mwDE
YsFzrOmXsIyYLX4+lf0eEFl5Dmw437IZN8z5yZFOZ3xp91Mpz6nMU79
9X6ATP6RRVC58zYYznasbvqgz1xoOIivYZr6WG/+3ia4/A5Zn9r+Mt9
5AjHqWOZtMqQAHqeHgOzsKHqbu0xduH8HsPXBF8fPD6EnLVz6GbjBET
KuDWka14AHzA==
-----END LICENSE-----
+30
View File
@@ -0,0 +1,30 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQMDAB5IuntKywoJmry
AgMDDUACASAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEA7JwOuCMu6xUJ+c
0NBKZZsEggTQC82I8AHltLbPCAIkTZoJv68aOV/cVXDcxZ7Mn1hOiob7nO4RuteW
mwTX3JZFd7Jlw5h706xAdRjbSsJXGgTMXECciqrfZ9c21+tYbKV4JpPBQMEhTLpa
IXUTWonQ9wh7vis3bcwBPaRCsfDtYaz872vDpf1X5BVOppoffKCiKFi2y5C+e3HG
CPcg+BTgZg+SRJB9yvSDqdDO5/s9Y6+otePt4Gr+wSOJRwYkdZ67f9uq4BaFcw2z
wIRKA0C1oClu7TAo5onjv1rvw/66migcMHRw1zjIk6oQv44caJvqca1eM9dniZo7
ccbq11PWpeBdKvEkAWuW1PoI7uuLQNdzs3UDO7LJttWwVNAKtO3o8LOL8x9Q7Jns
tvQqUrf0VNB8eBfmsD2I3zVMu2X4rNEDYlAbrL3f1vNkt949ib4eG7+lo3wrCt6J
6UFA791HGVJUvFI0NHdtT32+LdKyTJ+bIlz663LkNU2+mBs6UL7qe6XIBoXCNcg8
+VDKDDVSIyckSVxV7WuGeX9n3igRuvt88T2pCVlY+HEBWDgFoXxc5vx8LdD9EVaQ
OAmuXABLNTqUTCGms9KAa3WJ/QW6++NAt4uf+37LKzM9zyUrDZMTs5M2ZJ/otwgK
ZqIbDcVyfsX79ATs0UeJ7bdrMduXuKhFIVsjlJCGXlyKa7h+JmEpPkqnELGiThvi
hvWogpYt6S6/ofw13MAAgkDqgsfhUGH8tmPu8ufYQn2QQTjB7y1X+s+DUPBUYlic
Ds29YvGMp3wesMFppfwygtGtBFxxs7zvuz3aq9Putu1xC9q3dtHOPdxZYyLvz/aJ
F6BfOqk3NP0a6/S9TphgxE9CqYz2RIqRQg91IbPPrEiC8Sm3fLgX0fO1kfVN7x0E
Pg5+3M56UVflcWLsIcjDVYK4EId4XLHBTjFn8xhkEj56UJQsjb9fFbdQQBBI5pWM
G2nxoGdHD/GCOjZi2f393OMIDFbfoIaoz4L4osIFYaIg4sMrIy2oUOEwnqyLEVf2
tQ58ysC7SDVZza4jai5QXuTCHyMcHYf9BxuzIHEViquI0y19QvlMW17effUctfow
8a0sqCYr0KczggsaOR9BdAgHpSeoCM7SxkQd+j55iX/w7Det8JUvHoCSHRPwM0ar
QiAncEtdKYyU/vz25feTh/crDH1OB4umZIatPVJFr7samb1McocSI5/AxQ5YSkRT
BYyFj6Yi5D0jgmob4+t96Ub0UnWinXk+V6CeTEzgSE6/FYlEb+PqibWAhDfEWG+7
0oG58ajt2vOzbGytDE9RV48HzLoUoWEaNDoa51viuJhpSmRii4CrBj+ENvber2GR
qOM7bMcmicqUvegN9cB+9ZiIzWVePVvI/1NRvypqjXJVE99AD3GyRd5fuC0Vo4VQ
xdaZuk6ysWBldUcFVUCDzr32FWaxKe6cGZbjRtS/u6rDJ8DEJzvm7FcgcLj80qrd
mGrAMUafAfe+FrHSiMits/pUjzwiZqjsQeVIlULUgxQGeLVoERV7InkooBqxVOpI
R63O9zMjEZgkf7yhD8nOrw1fLO08D/eOud2yL5EhXUMWQmjnmBYDog/M1IRu13ba
L4qeddYh0cgHID8DjhjaY+g8VKiikgRO0d59xAkzHrMk4MS1l27xOz8=
-----END ENCRYPTED PRIVATE KEY-----
+9
View File
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsop6ceQNJeWYjourIu2Z
QydUFJwm3kwqXvoAiYP+NeLEyR9OET0eBRwowKDbFzdfDyCXcfJAbsRBoQ1he8Bw
dXcGZqs+QNcnoBz0Vl/uaxOXpVSN5RYj6wo0IFQ/nrR+gMTmzHut8ohtXI4n4a0C
7OVMfwoR2uJyLMLTQiHekEsLvraMnRcS5FbqIq2yUuVYCfGvU3Y2xo1jsvIkko7W
uF/Lw7LFCeruZ1hRYDLGa/HnKepdLhGXoh7lDQuagsUg510PVRGru4G50ATqKVTa
IwcvWNeF0BWjC78uBIhk5G65ZI/HRsS4MQvu3UwrTvtp6d9tTNOT9wixpfD1UtBr
qwIDAQAB
-----END PUBLIC KEY-----
@@ -0,0 +1,30 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQMd9+hjJsW/c+J80nH
AgMDDUACASAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEO7nm7S9FQLRqEHu
Ru0PecYEggTQ+mGSNkbOzZYW2/2R8AJmyX20h4tZNwhM1fQgyWexaf8UxHfmPgI8
Qm38NCO+NC2z+T5R7NFx2CO0MuSFoDu6bQL9fcNRnUqIQIrTTVWkSUyxpGmvee6x
h/AoTPOvGJ9WATojWCZSQH8CgNyBndMgKLurUB9tAty8vKPDuVucwcMFfPVR3wNt
em8s6e6tfq8fA7pg6yEWLyOHJYQE9UWM5hWw+kkBnZz/955QiC1bOmKB7ovlVt+Z
V0h2nFIAnyEwI6xgq/CpcK7K/i6+qW3KFgEFUBMr7Yfk1tLpezDWqR1JzJaQM6Vr
IykzWBnFFW9gjzgHxiaMdvjqkXgrI4oK8PK+YnmgEHJmLodXImx8hWGQwFoExpun
mrUg1swPumJjhAcJcaiEEy61qjcvYB3j3vpfk9DwU4g9LN0Ya9oohuKlU74w1OT8
RlwyWvyDL7P8BP3yPaUhljl7vHlNCKnJCQVbhkQcGM8TXtzglrF4joL0+3PTHNZg
U05uYnJWNTRJmzxfTFIpHzqE+wCXoV0GbvaQ5ZSLIYRnm5cXCRCxnuf6RybIZp5a
R9VzUGHbxNAcMyqYr5prcuZz/wCBxdiusndNqfTHyBMetTehR55igDRD8LcEuNxB
KX1dmMj+kpuYXN7S/BBarFCxTQm3IWCi8sH2JUxBDJfZ6KxNrX3++7n9REe48cil
mjxccZgYAf0rh10/3s8nD2MbezWig/bUMdlCszqMdy6tDz0g2xff22P/OIOXF5ip
uLxegXWcBR9MKErzEJlTWN1evKc8BubmcdxeF/8aZVBDJh1GfQ8wYdYpKBVpCP1k
d9H5n4OgsviZYnyLm2mBoK1oTm1rwTTa0U1/Hro9nb/n5gHQixU9er17U6jbuISU
2SPCGzpYsXMuIf2/pGFO1CVkz2hCroqiryEp5tHI43uKl0R3N0+NmuICNEqxxZsf
hHmdZXh3o5LoTVUEf+WQPHSoiBzir7A1KmIH0huCW53N7NpQ9PKUwY2E0uj69hzz
XLmR63mHKvZc5tqIwhRs+dhiSuE5/UWfn6wpRDebSCD8/u9tC8ORSbXK7TB8fHRu
EahsvbsXMmO6kVe1NU2TiDVsBm3XiBTN+AurK5uPVSEPFBGZPUlNVGC9Z/wIpuOT
jinUN6eOfY/Le+30BsH31bMAF0ND8m/CypJu1ZJ2mzIklDLp5qGoZMPcnrumd/MR
6yptqp9eKBvlf5Ilbm5OnSzc7l7Vjlh5cN1wkcOxTgovFye7At0DEOd5vSh9xkfD
2WbRk0XJEF7HvDT3ncKcpsAMPQxC3vK1s7Giz51zgeqSl5HPrbXowqiiEOUGBI8G
TWOI/vVtCxzNa8XZtqVtJ8ybe+hpbhU0oER+dmzLv1VckxIMVcjtLZa6iRqdG3gm
NWGOWgJ5WMglhjW3AQGkG2fp4FIgiPhS+yZmdk1Z7l39PI9Oj7KSFg1flgo4cxQX
1rm+hBUcuNYJQrE+Np/5G/XDwQyHduycTdKZsD/SAaV1xgt00jetYiX8tNLLzCAf
PEeEbcPr5RbTALZurK+M8ZGnRPWXIH6BAn1ThYRvrccSpROtfM6NrMLKdGDzh+pA
HSYsFvk2F6lifYsjDogamCr+JYvND0SsysFj+wWBNzBxwlP+kzU6H7k=
-----END ENCRYPTED PRIVATE KEY-----
+7 -7
View File
@@ -6,13 +6,13 @@
<String>Hello World!</String>
<source>
<SourcePaths>
<SourcePath>data</SourcePath>
</SourcePaths>
<HeaderSearchPaths>
<HeaderSearchPath>data/</HeaderSearchPath>
<HeaderSearchPath>src/</HeaderSearchPath>
</HeaderSearchPaths>
<source_paths>
<source_path>data</source_path>
</source_paths>
<header_search_paths>
<header_search_path>data/</header_search_path>
<header_search_path>src/</header_search_path>
</header_search_paths>
</source>
</config>
+130 -246
View File
@@ -1,310 +1,176 @@
ConfigManager.cpp WARNING: value path/to/nowhere is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
Token.cpp ERROR: Location Id was not referenced by this Token.
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class
@@ -313,128 +179,146 @@ Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Nodes are not plain copies.
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage2
INFO: handle TestMessage2
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage2
INFO: handle TestMessage2
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage2
INFO: handle TestMessage2
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: send TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
INFO: handle TestMessage
Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml
ConfigManager.cpp WARNING: value Bool is not present in config.
ConfigManager.cpp WARNING: value Int is not present in config.
ConfigManager.cpp WARNING: value Float is not present in config.
ConfigManager.cpp WARNING: value String is not present in config.
Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml
ConfigManager.cpp WARNING: value Bool is not present in config.
ConfigManager.cpp WARNING: value Int is not present in config.
ConfigManager.cpp WARNING: value Float is not present in config.
ConfigManager.cpp WARNING: value String is not present in config.
ConfigManager.cpp WARNING: value Bool is not present in config.
ConfigManager.cpp WARNING: value Int is not present in config.
ConfigManager.cpp WARNING: value Float is not present in config.
ConfigManager.cpp WARNING: value String is not present in config.
ConfigManager.cpp WARNING: value NewBool is not present in config.
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: typedef: type -> int <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: typedef: type -> int <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: class: Class <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: class: Class <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: struct: Struct <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: struct: Struct <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: global: Global <file.cpp 1:42 1:42>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: global: Global <file.cpp 1:42 1:42>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: global: Global <file.cpp 1:7 1:7>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: global: Global <file.cpp 1:7 1:7>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: field: m_field <file.cpp 1:3 1:3>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: field: m_field <file.cpp 1:3 1:3>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: field: Struct::m_field <file.cpp 1:11 1:11>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: field: Struct::m_field <file.cpp 1:11 1:11>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: function: isTrue <file.cpp 1:14 1:14>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: function: isTrue <file.cpp 1:14 1:14>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: method: isMethod <file.cpp 1:9 1:9>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: method: isMethod <file.cpp 1:9 1:9>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: method: Class::isMethod <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: method: Class::isMethod <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: namespace: utility <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: namespace: utility <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: enum: Category <file.cpp 1:17 1:17>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: enum: Category <file.cpp 1:17 1:17>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: enum: Class::Category <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: enum: Class::Category <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: enum constant: VALUE <file.cpp 1:1 1:1>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: enum constant: VALUE <file.cpp 1:1 1:1>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: class: ClassA <file.cpp 1:0 1:0>
Storage.cpp INFO: class: ClassB <file.cpp 1:0 1:0>
Storage.cpp INFO: inheritance: ClassB : ClassA <file.cpp 1:5 1:5>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: class: ClassA <file.cpp 1:0 1:0>
INFO: class: ClassB <file.cpp 1:0 1:0>
INFO: inheritance: ClassB : ClassA <file.cpp 1:5 1:5>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: struct: StructA <file.cpp 1:0 1:0>
Storage.cpp INFO: struct: StructB <file.cpp 1:0 1:0>
Storage.cpp INFO: inheritance: StructB : StructA <file.cpp 1:5 1:5>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: struct: StructA <file.cpp 1:0 1:0>
INFO: struct: StructB <file.cpp 1:0 1:0>
INFO: inheritance: StructB : StructA <file.cpp 1:5 1:5>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: method: A::isMethod <file.cpp 1:9 1:9>
Storage.cpp INFO: method: B::isMethod <file.cpp 1:7 1:7>
Storage.cpp INFO: override: A::isMethod -> B::isMethod <file.cpp 1:4 1:4>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: method: A::isMethod <file.cpp 1:9 1:9>
INFO: method: B::isMethod <file.cpp 1:7 1:7>
INFO: override: A::isMethod -> B::isMethod <file.cpp 1:4 1:4>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
Storage.cpp INFO: function: func <file.cpp 1:0 1:0>
Storage.cpp INFO: call: isTrue -> func <file.cpp 1:9 1:9>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: function: isTrue <file.cpp 1:0 1:0>
INFO: function: func <file.cpp 1:0 1:0>
INFO: call: isTrue -> func <file.cpp 1:9 1:9>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: global: global <file.cpp 1:0 1:0>
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
Storage.cpp INFO: call: global -> isTrue <file.cpp 1:7 1:7>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: global: global <file.cpp 1:0 1:0>
INFO: function: isTrue <file.cpp 1:0 1:0>
INFO: call: global -> isTrue <file.cpp 1:7 1:7>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
Storage.cpp INFO: field: Foo::m_field <file.cpp 1:0 1:0>
Storage.cpp INFO: field usage: isTrue -> Foo::m_field <file.cpp 1:7 1:7>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: function: isTrue <file.cpp 1:0 1:0>
INFO: field: Foo::m_field <file.cpp 1:0 1:0>
INFO: field usage: isTrue -> Foo::m_field <file.cpp 1:7 1:7>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
Storage.cpp INFO: global: global <file.cpp 1:0 1:0>
Storage.cpp INFO: global usage: isTrue -> global <file.cpp 1:7 1:7>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: function: isTrue <file.cpp 1:0 1:0>
INFO: global: global <file.cpp 1:0 1:0>
INFO: global usage: isTrue -> global <file.cpp 1:7 1:7>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
Storage.cpp INFO: struct: Struct <file.cpp 1:0 1:0>
Storage.cpp INFO: type usage: isTrue -> Struct <file.cpp 1:0 1:0>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: function: isTrue <file.cpp 1:0 1:0>
INFO: struct: Struct <file.cpp 1:0 1:0>
INFO: type usage: isTrue -> Struct <file.cpp 1:0 1:0>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: file: file.h < 0:0 0:0>
INFO: file: file.h < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.h
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
INFO: file: file.cpp < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.cpp
Storage.cpp INFO: file: file.h < 0:0 0:0>
INFO: file: file.h < 0:0 0:0>
TextAccess.cpp ERROR: Could not open file file.h
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
Storage.cpp INFO: include: file.h <file.cpp 1:7 1:7>
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
Storage.cpp INFO: file: file.h < 0:0 0:0>
INFO: file: file.cpp < 0:0 0:0>
INFO: include: file.h <file.cpp 1:7 1:7>
INFO: file: file.cpp < 0:0 0:0>
INFO: file: file.h < 0:0 0:0>
TextAccess.cpp WARNING: Index 'firstLine' has to be lower or equal index 'lastLine', is 3 > 2
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
+45
View File
@@ -0,0 +1,45 @@
SET(BOTAN_URL https://github.com/randombit/botan.git/)
SET(BOTAN_VERSION 1.11.23)
SET(BOTAN_MODULES "base,ecdsa,emsa1,passhash9,rng,rsa,egd,emsa_pssr,emsa_pkcs1,x509,aes,dev_random")
SET(BOTAN_DIR $ENV{COATI_DEPEND_DIR}/botan)
find_package(Git)
if(Git_FOUND)
else()
message(ERROR "git not found: git not in path")
endif()
if(EXISTS $ENV{COATI_DEPEND_DIR})
else()
message(ERROR "coati dependency directory does not exist")
endif()
if(EXISTS ${BOTAN_DIR})
else()
execute_process(
COMMAND ${GIT_EXECUTABLE} clone ${BOTAN_URL}
WORKING_DIRECTORY $ENV{COATI_DEPEND_DIR}
)
endif()
execute_process(
COMMAND ${GIT_EXECUTABLE} checkout ${BOTAN_VERSION}
WORKING_DIRECTORY ${BOTAN_DIR}
)
# system specific botan modules
if(UNIX)
elseif(MSVC)
endif()
execute_process(
COMMAND ./configure.py --gen-amalgamation --minimized-build --enable-modules=${BOTAN_MODULES}
WORKING_DIRECTORY ${BOTAN_DIR}
)
#linux
#./configure.py --gen-amalgamation --minimized-build --enable-modules=base,ecdsa,emsa1,passhash9,rng,rsa,egd,dev_random,emsa_pssr,emsa_pkcs1,x509,aes
-1
View File
@@ -8,7 +8,6 @@ else()
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build")
endif()
execute_process(
COMMAND ${CLANG_BUILD_PATH}/bin/llvm-config --cxxflags
OUTPUT_VARIABLE CLANG_DEFINITIONS
+59 -38
View File
@@ -3,70 +3,91 @@
# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
# )
# INSTALL(CODE "
# execute_process(
# COMMAND upx --best ${CMAKE_SOURCE_DIR}/bin/app/Release/Coati)"
# )
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/data
DESTINATION share/coati/.config/coati
PATTERN "log/*" EXCLUDE
PATTERN "projects" EXCLUDE
PATTERN "src" EXCLUDE
PATTERN "ApplicationSettings.xml" EXCLUDE
PATTERN "ApplicationSettings_distr.xml" EXCLUDE
PATTERN "ProjectSettings_template.xml" EXCLUDE
PATTERN "ApplicationSettings_template.xml" EXCLUDE
DESTINATION .
PATTERN "log/*" EXCLUDE
PATTERN "projects/ignored" EXCLUDE
PATTERN "data/src" EXCLUDE
PATTERN "*.sqlite" EXCLUDE
PATTERN "ApplicationSettings.xml" EXCLUDE
PATTERN "ApplicationSettings_for_package.xml" EXCLUDE
PATTERN "ProjectSettings_template.xml" EXCLUDE
PATTERN "ApplicationSettings_template.xml" EXCLUDE
)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/data/src/tictactoe
DESTINATION share/coati/.config/coati/data/projects
)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/ide_plugins/vs
DESTINATION plugin
PATTERN "vs2012" EXCLUDE
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/projects/tictactoe.xml
DESTINATION share/coati/.config/coati/data/projects/tictactoe
)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/ide_plugins/sublime_text
DESTINATION plugin
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/ApplicationSettings_distr.xml
DESTINATION share/coati/.config/coati/data
RENAME ApplicationSettings.xml)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/ApplicationSettings_for_package.xml
DESTINATION data
RENAME ApplicationSettings.xml
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/setup/Linux/coati.desktop
DESTINATION share/applications
DESTINATION .
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/gui/icon/logo_1024_1024.png
DESTINATION share/icons
RENAME coati.png)
DESTINATION .
RENAME coati.png
)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/web/coati_manual.pdf
DESTINATION .
)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/setup/Linux/lib
DESTINATION share/coati
DESTINATION .
)
INSTALL(FILES
${CMAKE_SOURCE_DIR}/setup/Linux/libqxcb.so
DESTINATION share/coati/platforms
${CMAKE_SOURCE_DIR}/setup/Linux/libqxcb.so
DESTINATION platforms
)
INSTALL(PROGRAMS
${CMAKE_SOURCE_DIR}/setup/Linux/Coati.sh
DESTINATION share/coati
)
INSTALL(PROGRAMS ${CMAKE_SOURCE_DIR}/setup/Linux/coati
DESTINATION bin/
${CMAKE_SOURCE_DIR}/setup/Linux/Coati.sh
DESTINATION .
)
# INSTALL(PROGRAMS ${CMAKE_SOURCE_DIR}/setup/Linux/coati
# DESTINATION bin/
# )
# add the automatically determined parts of the RPATH
# which point to directories outside the build tree to the install RPATH
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
INSTALL(TARGETS ${APP_PROJECT_NAME}
DESTINATION share/coati
DESTINATION .
)
SET(CPACK_GENERATOR "DEB;TGZ")
# SET(CPACK_GENERATOR "DEB;TGZ")
SET(CPACK_GENERATOR "TGZ")
SET(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
# DEBIAN PACKAGE
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Andreas Stallinger <astallinger@coati.io>")
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_VERSION_NUMBER}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_VERSION_NUMBER}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_VERSION_NUMBER}")
set(VERSION_NUMBER "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
SET(CPACK_PACKAGE_NAME "Coati")
SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://coati.io")
SET(CPACK_DEBIAN_PACKAGE_SECTION "devel")
SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
SET(CPACK_PACKAGE_VERSION ${GIT_VERSION_NUMBER})
SET(CPACK_PACKAGING_INSTALL_PREFIX "")
SET(CPACK_PACKAGE_VERSION ${VERSION_NUMBER})
SET(CPACK_PACKAGE_VENDOR "Coati Software")
# SET(CPACK_PACKAGE_VERSION ${GIT_VERSION_NUMBER})
SET(CPACK_PACKAGE_EXECUTABLES "Coati")
SET(CPACK_STRIP_FILES "share/coati/Coati")
SET(CPACK_STRIP_FILES "coati/Coati")
SET(CPACK_PACKAGE_CONTACT "astallinger@coati.io")
MESSAGE(STATUS "${CMAKE_SYSTEM}")
INCLUDE(CPack)
+10
View File
@@ -0,0 +1,10 @@
#ifndef PUBLIC_KEY_H
#define PUBLIC_KEY_H
// This File(PublicKey.h) is generated with CMake
#include <string>
static const std::string PublicKey = "@KEY@";
#endif // PUBLIC_KEY_H
+13 -12
View File
@@ -14,22 +14,23 @@ function(ReadLicense licenseFile licenseVariable)
set(LICENSES "${LICENSES}${var}${tempVariable}\"\;" PARENT_SCOPE)
endfunction(ReadLicense)
function(AddLicense licenseName licenseURL licenseFile)
ReadLicense(${licenseFile} ${licenseName}_license)
set(LICENSES ${LICENSES} PARENT_SCOPE)
set(LICENSE_ARRAY "${LICENSE_ARRAY}\n\tThirdPartyLicense(\"${licenseName}\", \"${licenseURL}\", ${licenseName}_license)," PARENT_SCOPE)
function(AddLicense licenseName licenseURL licenseFile isNotInTrial)
ReadLicense(${licenseFile} ${licenseName}_license)
set(LICENSES ${LICENSES} PARENT_SCOPE)
set(LICENSE_ARRAY "${LICENSE_ARRAY}\n\tThirdPartyLicense(\"${licenseName}\", \"${licenseURL}\", ${licenseName}_license, ${isNotInTrial})," PARENT_SCOPE)
endfunction(AddLicense)
AddLicense("Qt" "http://qt.io" "${LICENSEFOLDER}/qt_LICENSE.TXT")
AddLicense("Clang" "http://clang.llvm.org/" "${LICENSEFOLDER}/clang_LICENSE.TXT")
AddLicense("Boost" "http://www.boost.org" "${LICENSEFOLDER}/boost_LICENSE.TXT")
AddLicense("TinyXMl" "http://www.grinninglizard.com/tinyxml2/" "${LICENSEFOLDER}/tinyxml_LICENSE.TXT")
AddLicense("CppSQLite" "http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite" "${LICENSEFOLDER}/CppSQLite_LICENSE.TXT")
AddLicense("Eigen" "http://eigen.tuxfamily.org" "${LICENSEFOLDER}/eigen_LICENSE.TXT")
AddLicense("Qt" "http://qt.io" "${LICENSEFOLDER}/qt_LICENSE.TXT" false)
AddLicense("Clang" "http://clang.llvm.org/" "${LICENSEFOLDER}/clang_LICENSE.TXT" true)
AddLicense("Boost" "http://www.boost.org" "${LICENSEFOLDER}/boost_LICENSE.TXT" false)
AddLicense("TinyXMl" "http://www.grinninglizard.com/tinyxml2/" "${LICENSEFOLDER}/tinyxml_LICENSE.TXT" false)
AddLicense("CppSQLite" "http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite" "${LICENSEFOLDER}/CppSQLite_LICENSE.TXT" false)
AddLicense("Eigen" "http://eigen.tuxfamily.org" "${LICENSEFOLDER}/eigen_LICENSE.TXT" false)
AddLicense("Botan" "http://botan.randombit.net/" "${LICENSEFOLDER}/botan_LICENSE.TXT" true)
set(LICENSE_ARRAY "${LICENSE_ARRAY}\n")
configure_file(
${CMAKE_SOURCE_DIR}/src/app/licenses.h.in
${CMAKE_SOURCE_DIR}/build/src/app/licenses.h
${CMAKE_SOURCE_DIR}/cmake/licenses.h.in
${CMAKE_SOURCE_DIR}/build/src/lib_gui/licenses.h
)
@@ -1,16 +1,17 @@
#ifndef LICENSES_H
#define LICENSES_H
// This File(licenses.h) is generated with CMake
// This File(licenses.h) is generated with CMake
struct ThirdPartyLicense {
const char* name;
const char* url;
const char* license;
const bool isNotInTrial;
ThirdPartyLicense() : name(0), url(0), license(0) {}
ThirdPartyLicense(const char* name, const char* url, const char* license)
: name(name), url(url), license(license) {}
ThirdPartyLicense() : name(0), url(0), license(0), isNotInTrial(false) {}
ThirdPartyLicense(const char* name, const char* url, const char* license, const bool isNotInTrial)
: name(name), url(url), license(license), isNotInTrial(isNotInTrial) {}
bool isEmpty() const { return (name == 0 && url == 0 && license == 0); }
};
+22
View File
@@ -0,0 +1,22 @@
# searching for public key file of the Coati version in setup/RSA_keys
# if found the file will be put into a const string into the PubicKeh.h file
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_VERSION_NUMBER}")
message(STATUS "Get Public Key for Coati version: ${VERSION_MAJOR}")
set(pubKeyFile "${CMAKE_SOURCE_DIR}/setup/RSA_keys/public-${VERSION_MAJOR}.pem")
# message(STATUS "file: ${pubKeyFile}")
if(EXISTS ${pubKeyFile})
file(READ ${pubKeyFile} KEY)
STRING(REGEX REPLACE "\"" "\\\\\"" KEY "${KEY}")
STRING(REGEX REPLACE "\n" "\\\\n\"\n\t\"" KEY "${KEY}")
# message(STATUS "key: ${KEY}")
else()
message(WARNING "public keyfile for this version of Coati")
endif()
configure_file(
${CMAKE_SOURCE_DIR}/cmake/PublicKey.h.in
${CMAKE_SOURCE_DIR}/build/src/lib_gui/PublicKey.h
)
+2 -2
View File
@@ -43,6 +43,6 @@ message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
message(STATUS "Git version number:" ${GIT_VERSION_NUMBER} )
configure_file(
${CMAKE_SOURCE_DIR}/src/app/version.h.in
${CMAKE_SOURCE_DIR}/build/src/app/version.h
${CMAKE_SOURCE_DIR}/cmake/version.h.in
${CMAKE_SOURCE_DIR}/build/src/lib_gui/version.h
)
@@ -0,0 +1,46 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "CoatiSetup", "CoatiSetup\CoatiSetup.vdproj", "{6C8E6C92-1F24-4DDA-A7A6-F9141DE3A34F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SetupCreateDesktopShortcutLib", "SetupCreateDesktopShortcutLib\SetupCreateDesktopShortcutLib.csproj", "{91EE9087-7809-4289-AEC8-4DFB20679A74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SetupApplicationSettingsLib", "SetupApplicationSettingsLib\SetupApplicationSettingsLib.csproj", "{DF25B11F-6190-4605-9D32-BA7F545D624B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SetupCreateStartMenuShortcutLib", "SetupCreateStartMenuShortcutLib\SetupCreateStartMenuShortcutLib.csproj", "{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SetupRemoveCacheFiles", "SetupRemoveCacheFiles\SetupRemoveCacheFiles.csproj", "{CEA97AC9-7B4C-42D4-9CD3-E05C0A0473F5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6C8E6C92-1F24-4DDA-A7A6-F9141DE3A34F}.Debug|Any CPU.ActiveCfg = Debug
{6C8E6C92-1F24-4DDA-A7A6-F9141DE3A34F}.Debug|Any CPU.Build.0 = Debug
{6C8E6C92-1F24-4DDA-A7A6-F9141DE3A34F}.Release|Any CPU.ActiveCfg = Release
{6C8E6C92-1F24-4DDA-A7A6-F9141DE3A34F}.Release|Any CPU.Build.0 = Release
{91EE9087-7809-4289-AEC8-4DFB20679A74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{91EE9087-7809-4289-AEC8-4DFB20679A74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{91EE9087-7809-4289-AEC8-4DFB20679A74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{91EE9087-7809-4289-AEC8-4DFB20679A74}.Release|Any CPU.Build.0 = Release|Any CPU
{DF25B11F-6190-4605-9D32-BA7F545D624B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF25B11F-6190-4605-9D32-BA7F545D624B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF25B11F-6190-4605-9D32-BA7F545D624B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF25B11F-6190-4605-9D32-BA7F545D624B}.Release|Any CPU.Build.0 = Release|Any CPU
{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}.Release|Any CPU.Build.0 = Release|Any CPU
{CEA97AC9-7B4C-42D4-9CD3-E05C0A0473F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CEA97AC9-7B4C-42D4-9CD3-E05C0A0473F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CEA97AC9-7B4C-42D4-9CD3-E05C0A0473F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CEA97AC9-7B4C-42D4-9CD3-E05C0A0473F5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SetupApplicationSettingsLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SetupApplicationSettingsLib")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1107afd5-33a9-478d-a0b9-9f203ef30c94")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,36 @@
namespace SetupApplicationSettingsLib
{
partial class SetupApplicationSettings
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,45 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;
using System.Xml;
namespace SetupApplicationSettingsLib
{
[RunInstaller(true)]
public partial class SetupApplicationSettings : System.Configuration.Install.Installer
{
public SetupApplicationSettings()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
string appDataCoatiPath = Environment.GetEnvironmentVariable("APPDATA") + "\\..\\local\\Coati Software\\Coati\\";
string appSettingsPath = appDataCoatiPath + "ApplicationSettings.xml";
string projectsPath = appDataCoatiPath + "projects\\";
XmlDocument appSettings = new XmlDocument();
appSettings.Load(@appSettingsPath);
XmlNode recentProjects = appSettings.SelectSingleNode("config/user/recent_projects");
recentProjects.RemoveAll();
XmlNode tutorial = appSettings.CreateElement("recent_project");
tutorial.InnerText = projectsPath + "tutorial\\tutorial.coatiproject";
recentProjects.AppendChild(tutorial);
XmlNode tictactoe = appSettings.CreateElement("recent_project");
tictactoe.InnerText = projectsPath + "tictactoe\\tictactoe.coatiproject";
recentProjects.AppendChild(tictactoe);
appSettings.Save(appSettingsPath);
}
}
}
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{DF25B11F-6190-4605-9D32-BA7F545D624B}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SetupApplicationSettingsLib</RootNamespace>
<AssemblyName>SetupApplicationSettingsLib</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SetupApplicationSettings.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SetupApplicationSettings.Designer.cs">
<DependentUpon>SetupApplicationSettings.cs</DependentUpon>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,36 @@
namespace SetupCreateDesktopShortcutLib
{
partial class CreateDesktopShortcut
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,68 @@
using IWshRuntimeLibrary;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;
namespace SetupCreateDesktopShortcutLib
{
[RunInstaller(true)]
public partial class CreateDesktopShortcut : System.Configuration.Install.Installer
{
public CreateDesktopShortcut()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
string app = System.Reflection.Assembly.GetExecutingAssembly().Location;
string name = "install\\" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
int nameIdx = app.LastIndexOf(name);
string appDirectory = app.Substring(0, nameIdx);
app = appDirectory + "Coati.exe";
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Coati.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "Fast source code reading and navigation";
shortcut.TargetPath = app;
shortcut.WorkingDirectory = appDirectory;
shortcut.Save();
}
protected override void OnAfterRollback(IDictionary savedState)
{
base.OnAfterRollback(savedState);
DeleteDesktopShortcut();
}
protected override void OnAfterUninstall(IDictionary savedState)
{
base.OnAfterUninstall(savedState);
DeleteDesktopShortcut();
}
private void DeleteDesktopShortcut()
{
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Coati.lnk";
if (System.IO.File.Exists(shortcutAddress))
{
System.IO.File.Delete(shortcutAddress);
}
}
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SetupCreateDesktopShortcutLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SetupCreateDesktopShortcutLib")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("27b58167-bcfc-4b0d-8ca8-42bac62416d1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{91EE9087-7809-4289-AEC8-4DFB20679A74}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SetupCreateDesktopShortcutLib</RootNamespace>
<AssemblyName>SetupCreateDesktopShortcutLib</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CreateDesktopShortcut.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CreateDesktopShortcut.Designer.cs">
<DependentUpon>CreateDesktopShortcut.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="IWshRuntimeLibrary">
<Guid>{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,36 @@
namespace SetupCreateStartMenuShortcutLib
{
partial class CreateStartMenuShortcut
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,93 @@
using IWshRuntimeLibrary;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace SetupCreateStartMenuShortcutLib
{
[RunInstaller(true)]
public partial class CreateStartMenuShortcut : System.Configuration.Install.Installer
{
private static string _appShortcutName = "Coati.lnk";
private static string _uninstallShortcutName = "Uninstall Coati.lnk";
public CreateStartMenuShortcut()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
string app = System.Reflection.Assembly.GetExecutingAssembly().Location;
string name = "install\\" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
int nameIdx = app.LastIndexOf(name);
string appDirectory = app.Substring(0, nameIdx);
app = appDirectory + "Coati.exe";
WshShell shell = new WshShell();
string shortcutAddress = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu) + "\\Coati\\"; // "\\Coati.lnk";
if(!Directory.Exists(shortcutAddress))
{
Directory.CreateDirectory(shortcutAddress);
}
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress + _appShortcutName);
shortcut.Description = "Fast source code reading and navigation";
shortcut.TargetPath = app;
shortcut.WorkingDirectory = appDirectory;
shortcut.IconLocation = appDirectory + "data\\gui\\icon\\coati.ico";
shortcut.Save();
IWshShortcut uninstallShortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress + _uninstallShortcutName);
uninstallShortcut.Description = "Uninstall Coati";
uninstallShortcut.TargetPath = appDirectory + "\\install\\uninstall.bat";
uninstallShortcut.WorkingDirectory = appDirectory + "\\install";
uninstallShortcut.Save();
}
protected override void OnAfterRollback(IDictionary savedState)
{
base.OnAfterRollback(savedState);
DeleteShortcuts();
}
protected override void OnAfterUninstall(IDictionary savedState)
{
base.OnAfterUninstall(savedState);
DeleteShortcuts();
}
private void DeleteShortcuts()
{
WshShell shell = new WshShell();
string shortcutAddress = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu) + "\\Coati\\";
if (System.IO.File.Exists(shortcutAddress + _appShortcutName))
{
System.IO.File.Delete(shortcutAddress + _appShortcutName);
}
if (System.IO.File.Exists(shortcutAddress + _uninstallShortcutName))
{
System.IO.File.Delete(shortcutAddress + _uninstallShortcutName);
}
if(Directory.Exists(shortcutAddress))
{
Directory.Delete(shortcutAddress);
}
}
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SetupCreateStartMenuShortcutLib")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SetupCreateStartMenuShortcutLib")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d2e0e462-d5da-4270-ba51-02548abbed44")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{962F7DA5-AEA1-4D03-89FD-F9AC42C24E46}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SetupCreateStartMenuShortcutLib</RootNamespace>
<AssemblyName>SetupCreateStartMenuShortcutLib</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CreateStartMenuShortcut.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CreateStartMenuShortcut.Designer.cs">
<DependentUpon>CreateStartMenuShortcut.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="IWshRuntimeLibrary">
<Guid>{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Some files were not shown because too many files have changed in this diff Show More