Commit Graph

34 Commits

Author SHA1 Message Date
Luis Díaz Más
30773c92a3 WIN32_LEAN_AND_MEAN propagated with exiv2lib target 2020-10-06 22:48:38 +02:00
Robin Mills
a82bcebaab fix_cygwin_stack_protection_0.27 2020-10-01 18:50:36 +01:00
Luis Diaz Mas
bfd0e0593b Use check_cxx_compiler_flags instead of C version 2020-09-16 11:53:11 +02:00
Robin Mills
0005edf2f9 fix_solaris_stack_protection_0.27 2020-09-09 17:23:02 +01:00
Thomas Petazzoni
bbe0b70840
Properly detect availability of flags in cmake/compilerFlags.cmake (#1252)
Instead of relying on fragile and complex logic to decide if a
compiler flag is available or not, use the check_c_compiler_flag()
macro provided by the CMake standard library.

This for example avoids using -fcf-protection on architectures that
don't support this option.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

(cherry picked from commit dd2d181755a6e642c0a8e3225ef5407fff49eb3a)

When resolving the conflict from applying the patch, I also took the liberty
of re-indenting the snippet correcly and fixing mismatching
HAS_FCF_PROTECTION and HAS_FSTACK_PROTECTOR_STRONG variables
(the conditionals used GCC_ prefix but the variables were definded without it).

Signed-off-by: Jan Tojnar <jtojnar@gmail.com>
2020-09-04 06:45:00 +02:00
Luis Díaz Más
6667e13c4b Only use __cplusplus trick from VS2017 2020-05-05 08:09:45 +02:00
clanmills
4511817028 MSVC Changes. Leave CMake to set /std:. Only set /Zc:__cplusplus for VS2019+. Updated README.md 2020-05-04 21:43:59 +01:00
Robin Mills
cd5512e761 WIP. C++11 support 2020-05-04 08:17:37 +01:00
clanmills
b22d1de8b1 Remove add_compile_options(-std=gnu++98) 2020-05-02 15:11:30 +01:00
clanmills
65dde52cf9 Updated documentation. Removed -DEXIV2_BUILD_USE_C++11 2020-05-02 14:22:44 +01:00
clanmills
63a13e8620 Adding option -DEXIV2_BUILD_USE_C++11 2020-05-02 12:21:21 +01:00
Robin Mills
c51a8aa8ed Explicitly set compiler option -std=gnu++98 on Solaris 2020-04-30 14:13:23 +01:00
clanmills
5f36bf46e8 Fix for issue identified in #1175 2020-04-24 15:38:50 +01:00
clanmills
b50d6503bc fix_1102_msysGCC93_0.27 2020-04-23 12:11:43 +01:00
clanmills
13565be3d2 Change for solaris. 2020-04-15 16:53:03 +01:00
Robin Mills
d3444d4547 fix_GCC48 2020-03-26 13:21:38 +00:00
Luis Diaz
a62e35edb6 Remove compiler flag which is causing issues in Fedora_MinGW 2019-10-09 12:37:38 +02:00
Luis Diaz
907a5aef3b clang guard for -fstack-protector-strong 2019-10-09 12:37:38 +02:00
Luis Díaz Más
9a0889c744 FORTIFY not used on OSX 2019-10-09 12:37:38 +02:00
Luis Díaz Más
006dcde403 Better usage of --coverage flags 2019-10-09 12:37:38 +02:00
Luis Díaz Más
9c7c3c6d22 Allow to use new compiler flags in clang 2019-10-09 12:37:38 +02:00
Luis Díaz Más
1fa5839c8e cmake: use add_compile_option & add new security flags
- Replacement of CMAKE_CXX_FLAGS by add_compile_option where it was
  possible
- Addition of new compiler flags which are interesting in terms of
  software security
- Do not mix coverage flags with -O0 and -g
2019-10-09 12:37:38 +02:00
Robin Mills
c32b413f74 Fix: https://github.com/Exiv2/exiv2/issues/575 2018-12-09 18:54:40 +01:00
Luis Díaz Más
f92030d650 CMake: remove XMPSRC variable. 2018-11-26 15:23:30 +01:00
Luis Diaz Mas
d6c6d469a9 CMake: Use add_definitions instead of add_compile_definitions 2018-11-16 12:10:11 +01:00
Luis Díaz Más
38ed6de05d MSVC: Move compile definitions from config.h to CMake.
+ Also remove inclusion of <Windows.h> from config.h
2018-11-11 12:27:26 +01:00
Luis Díaz Más
274ef04f7e CMake: Proper way to require c++98 standard 2018-11-08 17:26:02 +01:00
Robin Mills
42084f2563 Add support for MinGW/msys2 in 32 bits + Updates in buildserver 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
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
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
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
Luis Díaz Más
5eee072089 Enable clcache usage and use it in appveyor
* [appveyor] Install clcache with nuget
* [appveyor] Keep clcache in the appveyor jobs
* [appveyor] Print clcache stats after compiling the project
* Use CLCACHE_PATH env variable to find clcache
2018-07-30 21:31:23 +02:00
Luis Diaz Mas
a3444f055e Rename config folder to cmake 2018-06-08 14:04:25 +02:00