Erwin Janssen [Mon, 29 Aug 2016 11:11:51 +0000 (13:11 +0200)]
Windows: Change release output directory
Use $(SolutionDir)Release\Graphviz\bin\ instead of
$(SolutionDir)Graphviz\bin\. This is more consistent and allows for an
easier artifact selection on Appveyor.
Erwin Janssen [Mon, 29 Aug 2016 10:00:52 +0000 (12:00 +0200)]
Windows: enabled Debug build for all projects.
Not all project would build when using the Debug configuration, and some
projects had conflicting settings that didn't allow a Debug build. Both
are fixed.
Erwin Janssen [Thu, 25 Aug 2016 18:01:16 +0000 (20:01 +0200)]
Appveyor: produce two artifacts
Produce two artifacts: one with all the files that are generated during
the build (PDB files for debug, etc.) and one without. The last one is
most suited as a release.
Erwin Janssen [Thu, 25 Aug 2016 13:25:31 +0000 (15:25 +0200)]
Windows: Removed false <RandomizedBaseAddress>
Some project had <RandomizedBaseAddress> set to false. Setting this to
false disables ASLR which is a nice security feature. These options are
removed because the default value for <RandomizedBaseAddress> is true.
Erwin Janssen [Tue, 23 Aug 2016 00:58:58 +0000 (02:58 +0200)]
Appveyor: Reduce build output noise.
Before the build, delete the file "C:\Program Files
(x86)\MSBuild\14.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets",
Otherwise several "target does not exist and will be ignored" messages are
printed.
Erwin Janssen [Tue, 23 Aug 2016 00:40:24 +0000 (02:40 +0200)]
Windows: Compiling with /MT instead of /MD
On a release build, compile all projects with /MT instead of /MD. This
means that required system libraries are staticly linked instead, so no
DLL is needed. Before this change, the user was required to install the
SDK, this is no longer the case.
The only exception is gvplugin_gd. This can't be compiled with /MT,
because it's dependency libgd is compiled with /MD.
Erwin Janssen [Mon, 22 Aug 2016 23:46:08 +0000 (01:46 +0200)]
Windows: Disable warning C4996
Disable MSVC warning C4996. This warning mostly fires on completely valid
code and fixing this warning compromises code portability, while the code
quality isn't improved substantially.
Fix bug in SparseMatrix_copy tries to copy a pattern matrix which does
have values.
If a matrix is constructed using _from_coordinate_arrays, it calls
from_coordinate_arrays_internal with SUM_REPEATED_ALL. The latter function then
calls sum_repeated_entries. This causes values to be added to the array
Later, if the matrix is passed to make_undirected, this calls symmetrize,
which may call _copy. If _copy uses _new, the new array will use the input
array's type (pattern) and not create memory values, causing the memcpy to fail.
Erwin Janssen [Wed, 10 Aug 2016 08:37:12 +0000 (10:37 +0200)]
Travis: clean build steps.
Because the results of `make install` when using a prefix aren't binaries suitable to be released, some build steps can either be removed or simpified.
Erwin Janssen [Mon, 8 Aug 2016 13:49:04 +0000 (15:49 +0200)]
Tests added for current behaviour command line.
This commit adds some tests that "document" the current behavior of the command line interface. When refactoring command line interface (like the parsing code), the observable behavior of the command line interface should stay the same, this is to ensure backwards compatibility. These tests are a start, it covers some basic command line operations (printing the version and usage), but show some interesting things. Mainly that the order of the flags is very important.
- `dot -Vrandom` prints the version, but `dot -randomV` causes an error.
- `dot -?V` prints the usage, but `dot -V?` prints the version.
While it may be desirable to change this, when refactoring this behavior should stay the same. Changing the existing interface should be done in Graphviz 3.
Erwin Janssen [Mon, 8 Aug 2016 10:08:42 +0000 (12:08 +0200)]
Travis: Install Criterion
Adds the installation of Criterion to the `install` step in the Travis configuration. A submodule is used so changes in the Criterion repository can't break the build. A submodule points to a specific commit.
Erwin Janssen [Mon, 8 Aug 2016 09:59:34 +0000 (11:59 +0200)]
Simple unit test added.
This unit test serves to validate the configuration and installation of the Criterion unit testing framework. This test will only be compiled and run if Criterion is installed.
Erwin Janssen [Mon, 8 Aug 2016 09:21:55 +0000 (11:21 +0200)]
Check for unit test framework in configure.ac
Criterion is a unit testing framework for C and C++ and it's C99 compatible. It allows for fast test writing because, unlike a lot of other C unit test frameworks, it doesn't require a lot of boilerplate code.
This check in configure.ac checks if Criterion is installed on the system.
There were several Wundef warnings in ast_common.h.in. Because this file is included in a lot of other files, these warnings showed up often. This change fixed 1119 warnings in total.
These utilities were installed from sourceforge, but this website has been
unstable lately. Often builds failed because the site was unreachable. The
utilities are now included using a git submodule.
- Deleted the the folder and all the files.
- Removed the project from the Visual Studio build
- libgd wasn't part of the autotools build, so nothing changed there.
Deleted `defined()` in ast_common.h around set values.
Some values are defined 0 or 1 at the top of the file. There shouldn't be
a `defined` around these, as the value must the checked, not if they are
defined.
Windows: fix error when parallel building with VS.
Gave the projects remaining projects in cmd/tools their own intermediate
directory (some already had this). This prevents errors when enabling
parallel build on Visual Studio.