- SubDir P4 ;
-
- # Define the default language standard. This is used by the
- # Jamrules C++FLAGS+STD function - it knows to remove the flag if
- # it's already there when adding a different version of the standard.
-
- local C++_VERSION_BASELINE = c++17 ;
-
- # Like the baseline, we define the highest version of the standard we
- # wish to use.
-
- local C++_VERSION_MAX = c++17 ;
-
- # We want to ensure that certain parts of the code use a portable version
- # of the standard, but we can't do it by default since mixing objects
- # compiled with different versions of the standard isn't safe and isn't
- # compatible with LTO, so we only do it by request.
- #
- # According to the steps in https://gcc.gnu.org/wiki/Cxx11AbiCompatibility we're
- # safe, but we'd still like to use LTO so we still have to do this.
-
- if $(C++_LANGUAGE_COMPAT_CHECK) = 1 { C++_VERSION_BASELINE = c++98 ; }
-
- # Now we set the standard for the entire project. There are overrides that
- # set C++_VERSION_MAX in the non-P4API parts of the code (e.g. the server).
-
- local C++FLAGS = [ C++FLAGS+STD $(C++_VERSION_BASELINE) ] ;
-
- if $(OS) = NT && $(MSVSVER) >= 15
- {
- # VS doesn't keep the __cpluplus macro accurate by default.
- # https://blogs.msdn.microsoft.com/vcblog/2018/04/09/msvc-now-correctly-reports-__cplusplus/
- C++FLAGS = /Zc:__cplusplus $(C++FLAGS) ;
- }
-
- if $(OS) = NT
- {
- C++FLAGS += /EHsc ;
-
- # For Extensions, libcURL
- C++FLAGS += /DCURL_STATICLIB ;
- }
- else
- {
- C++FLAGS += -DCURL_STATICLIB ;
- }
-
- SubInclude P4 auth ;
- SubInclude P4 client ;
- SubInclude P4 db ;
- SubInclude P4 dbpipe ;
- SubInclude P4 dbsupp ;
- SubInclude P4 dbopen2 ;
- SubInclude P4 diff ;
- SubInclude P4 dm ;
- SubInclude P4 dma ;
- SubInclude P4 dmc ;
- SubInclude P4 dme ;
- SubInclude P4 dmi ;
- SubInclude P4 dml ;
- SubInclude P4 dmobj ;
- SubInclude P4 dmp ;
- SubInclude P4 dmr ;
- SubInclude P4 dmrpc ;
- SubInclude P4 dms ;
- SubInclude P4 dmx ;
- SubInclude P4 i18n ;
- SubInclude P4 jsmn ;
- SubInclude P4 lbr ;
- SubInclude P4 lbrobj ;
- SubInclude P4 map ;
- SubInclude P4 msgs ;
- SubInclude P4 net ;
- SubInclude P4 script ;
- SubInclude P4 proxy ;
- SubInclude P4 rcs ;
- SubInclude P4 rpc ;
- SubInclude P4 server ;
- SubInclude P4 sslstub ;
- SubInclude P4 support ;
- SubInclude P4 sys ;
- SubInclude P4 web ;
- SubInclude P4 zlib ;
-
- SubInclude P4 broker ; # Must be after db
-
- if $(X3) = yes { SubInclude P4 xfer3rd ; }
-
- if $(PRODUCTION) { API ?= x ; }
-
- if $(API) { SubInclude P4 api ; }
- if $(TESTS) { SubInclude P4 tests ; }