### Minimum Requirements
- - Ubuntu 14.04 or later
+ - Ubuntu 16.04 or later
- Environment created using dali_env script in dali-core repository
- - GCC version 6
+ - GCC version 9
-DALi requires a compiler supporting C++11 features.
-Ubuntu 16.04 is the first version to offer this by default (GCC v5.4.0).
-
-GCC version 6 is recommended since it has fixes for issues in version 5
-e.g. it avoids spurious 'defined but not used' warnings in header files.
+DALi requires a compiler supporting C++17 features.
### Building the Repository
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
CMAKE_POLICY(SET CMP0012 NEW) # Prevent dereferencing of OFF/ON as variables
-SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_STANDARD 99)
PROJECT(${name} CXX)
SET(PKG_NAME ${name})
# Set up compiler flags and warnings
IF( UNIX )
+ ADD_COMPILE_OPTIONS( -std=c++17 ) # c++17 support
ADD_COMPILE_OPTIONS( -Wall ${DALI_CFLAGS} )# -Wextra -Wno-unused-parameter )# -Wfloat-equal )
ELSEIF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
ADD_COMPILE_OPTIONS( /FIdali-windows-dependencies.h ) #
ADD_COMPILE_OPTIONS( /FIextern-definitions.h ) # Adds missing definitions.
ADD_COMPILE_OPTIONS( /FIpreprocessor-definitions.h ) #
ADD_COMPILE_OPTIONS( /vmg ) # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
+ ADD_COMPILE_OPTIONS( /std:c++17 ) # c++17 support
ADD_COMPILE_OPTIONS( /wd4251 ) # Ignores warning C4251: "'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'"
ENDIF()