@@ -59,7 +59,7 @@ IF(ANDROID)
5959 ENDIF (NOT DEFINED ANDROID_SDK_TARGET_ID)
6060
6161 SET (SHARED_LIBS OFF )
62- add_definitions (-DANDROID -DWT_NO_STD_WSTRING= ON -DWT_NO_STD_LOCALE= ON )
62+ add_definitions (-DANDROID) # TODO(Roel): WT_NO_STD_WSTRING/WT_NO_STD_LOCALE?
6363ENDIF (ANDROID)
6464
6565#
@@ -110,31 +110,10 @@ OPTION(WT_NO_STD_LOCALE "Build Wt to run on a system without std::locale support
110110OPTION (WT_NO_STD_WSTRING "Build Wt to run on a system without std::wstring support" OFF )
111111OPTION (ENABLE_OPENGL "Build Wt with support for server-side opengl rendering" ON )
112112
113- # C++11 vs C++98
114- # Binary compatibility is not guaranteed. We give our users the choice on
115- # how to compile Wt
116- # We're not sure yet if you can safely link Wt compiled in 03 mode against
117- # an application compiled in 11 mode. Boost probably causes problems here
118- # (specially boost.signals2)
119113IF (NOT MSVC )
120- # For now, don't auto-detect
121- #IF(CMAKE_COMPILER_IS_GNUCXX)
122- # execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpversion"
123- # OUTPUT_VARIABLE GCC_VERSION)
124- # IF(${GCC_VERSION} VERSION_GREATER "4.5.99")
125- # SET(HAS_CXX11 ON)
126- # ENDIF(${GCC_VERSION} VERSION_GREATER "4.5.99")
127- #ENDIF(CMAKE_COMPILER_IS_GNUCXX)
128- SET (WT_CPP_11_MODE "" CACHE STRING "C++ mode to compile Wt in (leave empty for your compiler's default, or set to -std=c++11, -std=c++0x, ...)" )
129- IF (WT_CPP_11_MODE)
130- SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WT_CPP_11_MODE} " )
131- SET (HAS_CXX11 ON )
132- ENDIF (WT_CPP_11_MODE)
133- ELSE (NOT MSVC )
134- # For once, msvs is easier than gcc/llvm
135- IF (MSVC_VERSION GREATER 1600)
136- SET (HAS_CXX11 ON )
137- ENDIF (MSVC_VERSION GREATER 1600)
114+ #MSVC always enables its c++11 features by default
115+ SET (WT_CPP_11_MODE "-std=c++11" CACHE STRING "C++ mode to compile Wt in (defaults to -std=c++11, you can set it to -std=c++11, -std=c++0x, -std=c++14,...)" )
116+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WT_CPP_11_MODE} " )
138117ENDIF (NOT MSVC )
139118
140119IF (MSVC )
@@ -298,6 +277,7 @@ SET(GM_PREFIX ${USERLIB_PREFIX} CACHE PATH
298277 "Installation prefix of GraphicsMagick library (overrides USERLIB_PREFIX)" )
299278SET (SKIA_PREFIX ${USERLIB_PREFIX} CACHE PATH
300279 "Prefix of skia library (overrides USERLIB_PREFIX)" )
280+ SET (WT_TZDATA_INSTALL "." CACHE PATH "The location where the time zone data is installed (defaults to current working directory)" )
301281
302282OPTION (DEBUG "Support for debugging, must be enabled also in wt_config.xml" OFF )
303283
@@ -387,8 +367,7 @@ IF(NOT BOOST_WT_FOUND)
387367 "Note 2: the code to discover boost is located in cmake/WtFindBoost.txt\n "
388368 "Note 3: on windows, set BOOST_PREFIX to the full path, eg "
389369 "c:/Program Files/boost/boost_1_38\n\n "
390- "Note 4: if you do not have boost.random, set WT_NO_BOOST_RANDOM to ON"
391- "Wt requires the following C++ boost libraries: date_time, regex, program_options, signals, random, and optionally thread" )
370+ "Wt requires the following C++ boost libraries: program_options and random" )
392371 MESSAGE (FATAL_ERROR ${ERR} )
393372ENDIF (NOT BOOST_WT_FOUND)
394373
@@ -410,34 +389,6 @@ ELSE(BOOST_WT_MT_FOUND)
410389 ADD_DEFINITIONS (-DBOOST_DISABLE_THREADS -DSQLITE_THREADSAFE=0)
411390ENDIF (BOOST_WT_MT_FOUND)
412391
413- # decide on signals vs signals2
414- # boost 1.54 deprecated boost signals -> use signals2
415- IF (Boost_VERSION GREATER 105300)
416- MESSAGE (STATUS "Boost ${Boost_VERSION} > 1.53, WT_SIGNALS_IMPLEMENTATION = boost.signals2 recommended" )
417- SET (DEFAULT_WT_SIGNALS_IMPLEMENTATION "boost.signals2" )
418- ELSE (Boost_VERSION GREATER 105300)
419- SET (DEFAULT_WT_SIGNALS_IMPLEMENTATION "boost.signals" )
420- MESSAGE (STATUS "Boost ${Boost_VERSION} < 1.54, WT_SIGNALS_IMPLEMENTATION = boost.signals recommended" )
421- ENDIF (Boost_VERSION GREATER 105300)
422- SET (WT_SIGNALS_IMPLEMENTATION ${DEFAULT_WT_SIGNALS_IMPLEMENTATION} CACHE STRING "Select what implementation should be used for Wt signals" )
423- IF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
424- MESSAGE (STATUS "Informational: WT_SIGNALS_IMPLEMENTATION should be either boost.signals or boost.signals2" )
425- ELSE (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
426- SET_PROPERTY (CACHE WT_SIGNALS_IMPLEMENTATION PROPERTY STRINGS boost.signals boost.signals2)
427- ENDIF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
428-
429-
430- IF ("${WT_SIGNALS_IMPLEMENTATION} " STREQUAL "boost.signals" )
431- MESSAGE (STATUS "Selecting boost.signals" )
432- SET (WT_USE_BOOST_SIGNALS ON )
433- SET (WT_USE_BOOST_SIGNALS2 OFF )
434- ELSEIF ("${WT_SIGNALS_IMPLEMENTATION} " STREQUAL "boost.signals2" )
435- MESSAGE (STATUS "Selecting boost.signals2" )
436- SET (WT_USE_BOOST_SIGNALS OFF )
437- SET (WT_USE_BOOST_SIGNALS2 ON )
438- ENDIF ("${WT_SIGNALS_IMPLEMENTATION} " STREQUAL "boost.signals" )
439-
440-
441392# decide on GraphicsMagick vs skia
442393# todo: set default to whatever was found
443394SET (WT_WRASTERIMAGE_DEFAULT_IMPLEMENTATION "none" )
@@ -462,6 +413,26 @@ ELSE (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick")
462413 MESSAGE ("** Disabled WRasterimage support. Set WT_WRASTERIMAGE_IMPLEMENTATION to GraphicsMagick or skia." )
463414ENDIF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick" )
464415
416+ SET (WT_CPP17_ANY_DEFAULT_IMPLEMENTATION "thelink2012" )
417+ SET (WT_CPP17_ANY_IMPLEMENTATION ${WT_CPP17_ANY_DEFAULT_IMPLEMENTATION} CACHE STRING
418+ "Implementation for Wt::cpp17::any. Defaults to \" thelink2012\" : an included implementation of any by GitHub user thelink2012. Use \" std\" for std::any, or \" experimental\" for std::experimental::any, if compiler support is available. You may have to change WT_CPP_11_MODE to enable C++17 support in the compiler." )
419+
420+ IF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
421+ MESSAGE (STATUS "Informational: WT_CPP17_ANY_IMPLEMENTATION should be thelink2012, experimental, or std" )
422+ ELSE (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
423+ SET_PROPERTY (CACHE WT_CPP17_ANY_IMPLEMENTATION PROPERTY STRINGS thelink2012 experimental std)
424+ ENDIF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
425+
426+ IF (${WT_CPP17_ANY_IMPLEMENTATION} STREQUAL "thelink2012" )
427+ SET (WT_ANY_IS_THELINK2012_ANY ON )
428+ ELSEIF (${WT_CPP17_ANY_IMPLEMENTATION} STREQUAL "experimental" )
429+ SET (WT_ANY_IS_EXPERIMENTAL_ANY ON )
430+ ELSEIF (${WT_CPP17_ANY_IMPLEMENTATION} STREQUAL "std" )
431+ SET (WT_ANY_IS_STD_ANY ON )
432+ ELSE (${WT_CPP17_ANY_IMPLEMENTATION} STREQUAL "thelink2012" )
433+ MESSAGE (FATAL_ERROR "WT_CPP17_ANY_IMPLEMENTATION must be one of thelink2012, experimental, or std" )
434+ ENDIF (${WT_CPP17_ANY_IMPLEMENTATION} STREQUAL "thelink2012" )
435+
465436FIND_PACKAGE (Doxygen)
466437
467438# Boost is used nearly everywhere, so we can put these here
0 commit comments