Commit Graph

169 Commits

Author SHA1 Message Date
Luis Diaz Mas
ea5ae1b94c CMake: Do not use project(DESCRIPTION) (only available from CMake 3.9) 2018-11-05 19:28:29 +01:00
Luis Díaz Más
09ad415f1f CMake: Define PROJECT_DESCRIPTION 2018-11-03 09:37:32 +01:00
Luis Díaz Más
bc215c01a2 CMake: move CMake definitions to the main cmake file
Note that the reason to do that is to make PACKAGE_URL variable visible when
the exiv2.pc is generated.
2018-11-03 09:37:32 +01:00
Luis Díaz Más
afc1a1e526 Install exiv2.pc into prefix/lib/pkgconfig 2018-11-02 13:53:04 +01:00
Luis Díaz Más
c87749a5e2 Configure exiv2.pc file and install it into share 2018-11-01 22:20:27 +01:00
Luis Diaz Mas
611d6c7bbc CMake: Move uninstall code to mainSetup 2018-10-30 15:26:23 +01:00
Luis Diaz Mas
f7fb146389 Add EXIV2_TEAM_PACKAGING cmake variable to add CPack configuration 2018-10-30 15:26:23 +01:00
Robin Mills
5f6ef65695 Update PROJECT_VERSION & add install() commands for CPack
- Version updated to 0.27.0.1.
- Release notes for MacOS-X Package, Linux, CYGWIN, win64 and msvc
- Redmine Release Notes Updated.
2018-10-26 17:47:15 +02:00
Luis Díaz Más
dc086d2ebb Default to /MD(d) even for STATIC builds.
We had issues to compile exiv2 due to a undefined symbol referenced in expat.lib (Explained in #487).
Static builds in Windows need to use msvcrt.lib where the missing symbol ("__imp__mbspbrk") was
defined. We can still decide to use the STATIC CRT  library by using:

cmake -DBUILD_SHARED_LIBS=OFF -DEXIV2_ENABLE_DYNAMIC_RUNTIME=OFF
2018-10-17 13:05:23 +02:00
Luis Díaz Más
155b1a5a6b CMake: Remove magic configuration about WEBREADY. Users will need to specify what to use. 2018-10-16 17:09:17 +02:00
Luis Díaz Más
5eb692d536 CPack: Add tweak number. Now packages include the tweak number in the name 2018-09-14 07:43:21 +02:00
Luis Díaz Más
085d8a309a Remove COMMERCIAL Cmake variable 2018-09-12 19:22:31 +02:00
Luis Díaz Más
5324ac8c0e Move CMake variables to the file where they are used 2018-09-12 19:22:31 +02:00
Luis Díaz Más
603692a1d8 Copyright to Exiv2 authors 2018-09-12 19:22:31 +02:00
Luis Díaz Más
a6d82633c3 Enable WARNINGS_AS_ERRORS in CI jobs.
- Move the settings to other cmake file. This will not be used for XMP code
- Disable WARNINGS_AS_ERRORS for VS2008 and VS2010
2018-09-12 19:22:31 +02:00
Luis Díaz Más
0bfa0168df Cleanup some of the PACKAGE_XXX variables and rely in the ones given by the project() command 2018-09-12 19:22:31 +02:00
Luis Díaz Más
b2b04fe2d6 Use project() command to provide project version
- Note that we cannot find libiconv without saying that Exiv2 is also a C project
2018-09-12 19:22:31 +02:00
Luis Díaz Más
68f7c5e047 Use Cpack for generating the tarballs (TODO: document) 2018-09-12 19:22:31 +02:00
Luis Díaz Más
dce05ac488 Remove occurrences of EXIV2_BUILDDIR and rely in EXIV2_BINDIR 2018-09-11 06:54:44 +02:00
Dan Čermák
10929cec7a [CMake] Add EXIV2_TEAM_USE_SANITIZERS option
Setting this option enables address sanitizer and undefined behavior
sanitizer, when available for the given compiler & platform.
It does not currently check whether the architecture is supported,
as CMake does not offer an easy way how to check it. Since we are
mostly developing for x86 & amd64 this is not a huge problem and it's
also a developer only setting.
2018-08-27 17:22:33 +02:00
Luis Diaz Mas
17ad919ec2 CMake: Add RPATH configuration for Linux/Solaris
Note that this RPATH setup is following a recommendation from the CMake
documentation:
https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling#recommendations
2018-08-17 10:28:08 +02:00
Luis Diaz Mas
6521f7c4f9 cmake: new option to enable compilations with coverage flags
Note that this will only work with gcc and clang.
2018-07-31 23:43:46 +02:00
AndreasMartin72
33c0416bc8 Bugfix for build error (Win7, msvc)
Ref: https://github.com/Exiv2/exiv2/issues/371#issuecomment-401319696
2018-07-05 18:28:26 +02:00
Dan Čermák
8393064416 Fix accidentally removed tests target 2018-06-10 17:27:37 +02:00
Luis Diaz Mas
a3444f055e Rename config folder to cmake 2018-06-08 14:04:25 +02:00
Luis Diaz Mas
41bb15f7b7 Remove usage of CMAKE_DEBUG_POSTFIX
This option should be provided when calling to the cmake command.
Otherwise, we overwrite the value even when the user pass the value
in the command line.
2018-06-08 14:04:25 +02:00
Dan Čermák
653814afb0 [testsuite] Allow setting the binary location for make tests 2018-06-07 10:19:59 +02:00
Luis Diaz Mas
71638014a3 CMake: control doc generation with a new CMake option 2018-06-07 01:55:05 +02:00
Luis Díaz Más
d9d2c2217a CMake: macro to generate documentation
We use now the Doxyfile.in template file with some variables that are
replaced at configuration time by absolute paths. Therefore, we can run
later the doxygen command with absolute paths from the
PROJECT_BINARY_DIR.

The CMake 'doc' target is added only if doxygen is available in the
system.
2018-06-04 14:05:40 +02:00
Luis Diaz Mas
5fa8f5aa87 CMake: minimum version bumped to 3.3.2 2018-06-01 06:55:38 +02:00
Luis Diaz Mas
b590fa542a Disable 'embedded' XMP when EXIV2_ENABLE_EXTERNAL_XMP is enabled 2018-05-29 10:03:41 +02:00
Luis Diaz Mas
9586928d29 Add CMake code to handle external XMP
Experiment: Try with testing package
2018-05-29 10:03:41 +02:00
Luis Díaz Más
c3629117d8 conan: Upgrade libcurl version
Thanks to this upgrade the cmake code that handles the CURL dependency
can be simplified. Now we can use the shared version of CURL in all the
platforms. However we will use for the moment the static version on Mac,
since we are having some issues with 'make tests'. Once those tests are
migrated to python we can also use the shared version there.
2018-05-22 22:53:18 +02:00
Luis Díaz Más
cc7ff4122d Export all symbols when running unit tests. Add dummy test for private code.
I tried to use directly the private OBJECT library (exiv2lib_int) in the unit_tests targets, but the private objects have dependencies on the public symbols (circular dependency)
and therefore it is impossible to test the private code with that approach with the current design of the library.

Starting from CMake 3.3 we can use the variable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to export all the symbols of a shared library:
https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/

Even having the opportunity to use this variable (that will be only used when EXIV2_BUILD_UNIT_TESTS is enabled) the previous commits are still valid.
It is interesting to clearly differentiate between the public and private code of the library. Enforcing this, make us think twice before putting code in the public
part of the library.
2017-11-28 17:36:08 +01:00
Luis Díaz Más
4ad4323685 Add new CMake options to use compiler flags to detect issues in the code (Gcc, Clang & MSVC) 2017-11-01 05:37:54 +01:00
Andreas Sturmlechner
7f515e6da7
Add build switch to enable auto ccache
Make usage of ccache by build system opt-in.
2017-10-16 11:31:24 +02:00
Luis Díaz Más
f9fab45163 (AppVeyor) Trying to run unit tests properly from windows 2017-10-16 07:27:32 +02:00
Pix4d
3f53588de7 (Travis) Should run tests on mac 2017-10-16 07:27:32 +02:00
Luis Díaz Más
26189ad287 (CMake) Add a new CMake option to enable the new Unit Tests 2017-10-16 07:27:32 +02:00
Luis Díaz Más
cd38a570fa (CMake) Same output directories for binaries and libraries on all the platforms 2017-10-16 07:27:32 +02:00
Luis Diaz Mas
2784b1f7f7 Remove EXIV2_ENABLE_LIBXMP variable, always build static XMP library, remove cmake OBJECT library 2017-10-03 19:54:57 +02:00
Luis Díaz Más
0448415ff2 Remove useless HAVE_XMP_TOOLKIT 2017-10-01 18:48:27 +02:00
Luis Díaz Más
96bb10f38e Fix the default configuration CMake+Windows 2017-10-01 16:39:39 +02:00
Luis Díaz Más
8ad49f6d73 Robin changes in sync with master changes 2017-09-28 19:42:57 +02:00
clanmills
012d630125 Polish options. Move exv_conf.h to directory include/exiv2 2017-09-13 15:33:16 +01:00
Robin Mills
d356aaae95 cmakeBuild.cmd --webready working with VS 2005 2017-09-13 11:54:02 +01:00
Robin Mills
b9ccc70bcc Bug fixes in cmakeBuild.cmd. --config Debug works correctly. Documentation update. Remove 'u' postfix ABI incompatibility. 2017-09-08 22:44:54 +01:00
Robin Mills
60d436c969 Many changes to CMakeLists.txt and cmakeBuild.cmd to support unicode, static linking, passing shared library build flags. 2017-09-05 21:36:56 +01:00
Luis Díaz Más
31a51fda8a Replace EXIV2_ENABLE_SHARED by BUILD_SHARED_LIBS. Also use EXV_HAVE_DLL only for the exiv2lib target 2017-08-24 17:59:41 +02:00
Andreas Sturmlechner
20c7ad6c59 Lowercase include{,_directories} 2017-08-22 18:21:28 +02:00