[CXX-309] SConstruct refers to PCRE, but PCRE is not used anymore in C++ Driver legacy Created: 18/Aug/14  Updated: 13/Nov/14  Resolved: 03/Sep/14

Status: Closed
Project: C++ Driver
Component/s: Build
Affects Version/s: legacy-0.0-26compat-2.6.0, legacy-0.0-26compat-2.6.1, legacy-0.0-26compat-2.6.2, legacy-0.0-26compat-2.6.3, legacy-0.0-26compat-2.6.4
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Thomas Riccardi Assignee: Adam Midvidy
Resolution: Won't Fix Votes: 0
Labels: legacy-cxx
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Since the split of the C++ driver from the C++ core, many third party dependencies have been removed from the source, including PCRE.

However they are still referenced in the Sconstruct:

add_option( "use-system-pcre", "use system version of pcre library", 0, True )
...
env.Prepend( CPPDEFINES=[ "_SCONS" , 
                          "MONGO_EXPOSE_MACROS" ,
                          "SUPPORT_UTF8" ],  # for pcre
...
if not use_system_version_of_library("pcre"):
    env.Prepend(CPPPATH=[ '$BUILD_DIR/third_party/pcre-${PCRE_VERSION}' ])

So by default the compiler command line is polluted with unnecessary paths:

-Ibuild/linux2/ssl/use-system-boost/third_party/pcre-8.30 -Isrc/third_party/pcre-8.30

The scons --help is also polluted:

  --use-system-tcmalloc=USE-SYSTEM-TCMALLOC
                              use system version of tcmalloc library
  --use-system-pcre=USE-SYSTEM-PCRE
                              use system version of pcre library
  --use-system-boost=USE-SYSTEM-BOOST
                              use system version of boost libraries
  --use-system-snappy=USE-SYSTEM-SNAPPY
                              use system version of snappy library
  --use-system-v8=USE-SYSTEM-V8
                              use system version of v8 library
  --use-system-stemmer=USE-SYSTEM-STEMMER
                              use system version of stemmer
  --use-system-yaml=USE-SYSTEM-YAML
                              use system version of yaml

Only boost is a real dependency (and is not shipped anymore, so the option is in fact mandatory).

This is not a blocking issue, but it's confusing to have mentions of all these third party libraries: it lets one believe they are really used, which is an issue when packaging the mongodb c++ driver.



 Comments   
Comment by Thomas Riccardi [ 03/Sep/14 ]

26compat is the only current production-ready version, that's why I reported this.
But OK, I understand.

Comment by Adam Midvidy [ 03/Sep/14 ]

As effort has been shifted to the legacy branch and the forthcoming rewrite, we are going to leave this as is since 26compat branch is not a focus of active development.

Generated at Wed Feb 07 21:58:49 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.