Skip to content

Commit 48fc2f2

Browse files
committed
Added Wt 4 branch
1 parent bac28e1 commit 48fc2f2

File tree

1,575 files changed

+61102
-36964
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,575 files changed

+61102
-36964
lines changed

CMakeLists.txt

Lines changed: 26 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -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?
6363
ENDIF(ANDROID)
6464

6565
#
@@ -110,31 +110,10 @@ OPTION(WT_NO_STD_LOCALE "Build Wt to run on a system without std::locale support
110110
OPTION(WT_NO_STD_WSTRING "Build Wt to run on a system without std::wstring support" OFF)
111111
OPTION(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)
119113
IF(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}")
138117
ENDIF(NOT MSVC)
139118

140119
IF(MSVC)
@@ -298,6 +277,7 @@ SET(GM_PREFIX ${USERLIB_PREFIX} CACHE PATH
298277
"Installation prefix of GraphicsMagick library (overrides USERLIB_PREFIX)")
299278
SET(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

302282
OPTION(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})
393372
ENDIF(NOT BOOST_WT_FOUND)
394373

@@ -410,34 +389,6 @@ ELSE(BOOST_WT_MT_FOUND)
410389
ADD_DEFINITIONS(-DBOOST_DISABLE_THREADS -DSQLITE_THREADSAFE=0)
411390
ENDIF(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
443394
SET(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.")
463414
ENDIF (${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+
465436
FIND_PACKAGE(Doxygen)
466437

467438
# Boost is used nearly everywhere, so we can put these here

WConfig.h.in

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,25 @@
1919
#define WT_CONFIG_XML "${CONFIGURATION}"
2020
#define WTHTTP_CONFIGURATION "${WTHTTP_CONFIGURATION}"
2121

22-
2322
#cmakedefine WT_STATIC
2423
#cmakedefine WTDBO_STATIC
2524
#cmakedefine WTDBOPOSTGRES_STATIC
2625
#cmakedefine WTDBOSQLITE3_STATIC
2726
#cmakedefine WTDBOFIREBIRD_STATIC
2827
#cmakedefine WTDBOMYSQL_STATIC
2928
#cmakedefine WTHTTP_STATIC
30-
#cmakedefine WT_EXT_STATIC
31-
#cmakedefine WT_EXT_STATIC
3229

3330
#cmakedefine WT_HAS_WRASTERIMAGE
3431
#cmakedefine WT_HAS_WPDFIMAGE
3532
#cmakedefine WT_WITH_SSL
3633

37-
#cmakedefine WT_NO_BOOST_INTRUSIVE
38-
#cmakedefine WT_NO_BOOST_RANDOM
39-
#cmakedefine WT_NO_STD_LOCALE
40-
#cmakedefine WT_NO_STD_WSTRING
4134
#cmakedefine WT_USE_OPENGL
4235
#cmakedefine WT_DEBUG_ENABLED
4336
#cmakedefine WT_THREADED
4437

45-
#cmakedefine WT_USE_BOOST_SIGNALS
46-
#cmakedefine WT_USE_BOOST_SIGNALS2
38+
#cmakedefine WT_ANY_IS_THELINK2012_ANY
39+
#cmakedefine WT_ANY_IS_EXPERIMENTAL_ANY
40+
#cmakedefine WT_ANY_IS_STD_ANY
4741

4842
// our win32: WIN32 (gcc) or _WIN32 (MSC)
4943
#if defined(WIN32) || defined(_WIN32)

cmake/WtFindBoost-cmake.txt

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@
99
# - BOOST_WT_LIBRARIES
1010
#
1111
# Separate compiled boost libraries are also discovered:
12-
# - BOOST_DT_LIB
1312
# - BOOST_FS_LIB
14-
# - BOOST_REGEX_LIB
1513
# - BOOST_PO_LIB
16-
# - BOOST_SIGNALS_LIB
1714
# - BOOST_SYSTEM_LIB
1815
# - BOOST_THREAD_LIB (only if BOOST_MT_FOUND)
1916
# Boost will try to find the same kind (mt or not) of library for all three
@@ -55,25 +52,12 @@ ENDIF(WIN32)
5552

5653
SET(Boost_DEBUG ON)
5754

58-
OPTION(WT_NO_BOOST_RANDOM "For compatibility with older boost versions. Do not enable for boost > 1.45" OFF)
59-
MESSAGE("WT_NO_BOOST_RANDOM is ${WT_NO_BOOST_RANDOM}")
60-
6155
SET(Boost_COMPONENTS
62-
date_time
63-
regex
6456
program_options
65-
signals
6657
system
6758
filesystem
6859
thread
6960
)
70-
IF(NOT WT_NO_BOOST_RANDOM)
71-
SET(Boost_COMPONENTS
72-
${Boost_COMPONENTS}
73-
random
74-
)
75-
ENDIF(NOT WT_NO_BOOST_RANDOM)
76-
7761

7862
FIND_PACKAGE(Boost 1.35
7963
COMPONENTS
@@ -85,16 +69,10 @@ IF (Boost_FOUND)
8569
# Translate variables from official cmake names to internally used names
8670
SET(BOOST_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
8771
SET(BOOST_LIB_DIRS ${Boost_LIBRARY_DIRS})
88-
SET(BOOST_DT_LIB ${Boost_DATE_TIME_LIBRARY})
8972
SET(BOOST_FS_LIB ${Boost_FILESYSTEM_LIBRARY})
90-
SET(BOOST_REGEX_LIB ${Boost_REGEX_LIBRARY})
9173
SET(BOOST_PO_LIB ${Boost_PROGRAM_OPTIONS_LIBRARY})
92-
SET(BOOST_SIGNALS_LIB ${Boost_SIGNALS_LIBRARY})
9374
SET(BOOST_SYSTEM_LIB ${Boost_SYSTEM_LIBRARY})
9475
SET(BOOST_THREAD_LIB ${Boost_THREAD_LIBRARY})
95-
IF(NOT WT_NO_BOOST_RANDOM)
96-
SET(BOOST_RANDOM_LIB ${Boost_RANDOM_LIBRARY})
97-
ENDIF(NOT WT_NO_BOOST_RANDOM)
9876

9977
SET(BOOST_WT_MT_FOUND TRUE)
10078
SET(BOOST_WT_FOUND TRUE)
@@ -108,17 +86,12 @@ IF (Boost_FOUND)
10886
ELSE(MSVC)
10987
SET(BOOST_WT_LIBRARIES
11088
${Boost_THREAD_LIBRARY}
111-
${BOOST_RANDOM_LIB}
112-
${Boost_REGEX_LIBRARY}
113-
${Boost_SIGNALS_LIBRARY}
11489
${Boost_SYSTEM_LIBRARY}
115-
${Boost_FILESYSTEM_LIBRARY}
116-
${Boost_DATE_TIME_LIBRARY})
90+
${Boost_FILESYSTEM_LIBRARY})
11791
SET(BOOST_WTHTTP_LIBRARIES
11892
${Boost_THREAD_LIBRARY}
11993
${Boost_PROGRAM_OPTIONS_LIBRARY}
12094
${Boost_SYSTEM_LIBRARY}
121-
${Boost_FILESYSTEM_LIBRARY}
122-
${Boost_DATE_TIME_LIBRARY})
95+
${Boost_FILESYSTEM_LIBRARY})
12396
ENDIF(MSVC)
12497
ENDIF (Boost_FOUND)

0 commit comments

Comments
 (0)