diff options
author | Tobias Markmann <tm@ayena.de> | 2016-04-25 19:43:29 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-04-25 19:43:29 (GMT) |
commit | 857791adda753a0f94da8317bbc019378b1f09bd (patch) | |
tree | 96aa2e4d863d50888a16527f9fbb38712e97d8ee | |
parent | b58ad7f4b01623a8807b8c268208bd9c8496f4e2 (diff) | |
download | swift-857791adda753a0f94da8317bbc019378b1f09bd.zip swift-857791adda753a0f94da8317bbc019378b1f09bd.tar.bz2 |
Convert hard tabs to four spaces in all our SConscript/*.py files
Test-Information:
Test that it still builds and unit test pass on OS X 10.11.4.
Change-Id: I2eb4a0b707991aee553db36a8cd1ae28b813acab
114 files changed, 5605 insertions, 5606 deletions
diff --git a/3rdParty/Boost/SConscript b/3rdParty/Boost/SConscript index 6d04c0d..8708eb9 100644 --- a/3rdParty/Boost/SConscript +++ b/3rdParty/Boost/SConscript @@ -4,16 +4,16 @@ Import("env") # FIXME: Remove this when Boost UUID is present on most distros if env.get("BOOST_BUNDLED_UUID_ONLY", False) : - # Cherry pick UUID out of the 3rdParty dir, install it in a separate - # dir, and use this as an include path. - if env["SCONS_STAGE"] == "flags" : - if env["PLATFORM"] == "win32" : - uuid_cppflags = ["/I" + Dir("uuid").abspath] - else : - uuid_cppflags = [("-isystem", Dir("uuid").abspath)] - env["BOOST_FLAGS"]["CPPFLAGS"] = env["BOOST_FLAGS"].get("CPPFLAGS", []) + uuid_cppflags - elif env["SCONS_STAGE"] == "build" : - env.Install("uuid/boost", "src/boost/uuid") + # Cherry pick UUID out of the 3rdParty dir, install it in a separate + # dir, and use this as an include path. + if env["SCONS_STAGE"] == "flags" : + if env["PLATFORM"] == "win32" : + uuid_cppflags = ["/I" + Dir("uuid").abspath] + else : + uuid_cppflags = [("-isystem", Dir("uuid").abspath)] + env["BOOST_FLAGS"]["CPPFLAGS"] = env["BOOST_FLAGS"].get("CPPFLAGS", []) + uuid_cppflags + elif env["SCONS_STAGE"] == "build" : + env.Install("uuid/boost", "src/boost/uuid") elif env.get("BOOST_BUNDLED", False) : @@ -21,153 +21,153 @@ elif env.get("BOOST_BUNDLED", False) : # Common ################################################################################ - cppdefines = ["BOOST_ALL_NO_LIB", "BOOST_SYSTEM_NO_DEPRECATED"] - #if env["PLATFORM"] == "darwin" : - # cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"] - if env["PLATFORM"] == "win32" : - cppflags = ["/I" + Dir("#/3rdParty/Boost/src").abspath] - else : - cppflags = [("-isystem", Dir("#/3rdParty/Boost/src").abspath)] + cppdefines = ["BOOST_ALL_NO_LIB", "BOOST_SYSTEM_NO_DEPRECATED"] + #if env["PLATFORM"] == "darwin" : + # cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"] + if env["PLATFORM"] == "win32" : + cppflags = ["/I" + Dir("#/3rdParty/Boost/src").abspath] + else : + cppflags = [("-isystem", Dir("#/3rdParty/Boost/src").abspath)] ################################################################################ # Flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["BOOST_FLAGS"] = { - "CPPFLAGS": cppflags, - "CPPDEFINES": cppdefines, - "LIBPATH": [Dir(".")], - "LIBS": ["Swiften_Boost"] - } - if env["PLATFORM"] == "win32" : - # 0x0600 = _WIN32_WINNT_VISTA - env["BOOST_FLAGS"]["CPPDEFINES"] += [("_WIN32_WINNT", "0x0600")] - if env["PLATFORM"] == "cygwin" : - env["BOOST_FLAGS"]["CPPDEFINES"] += ["__USE_W32_SOCKETS"] - elif env["PLATFORM"] == "posix" : - env["BOOST_FLAGS"]["LIBS"] += ["rt"] + if env["SCONS_STAGE"] == "flags" : + env["BOOST_FLAGS"] = { + "CPPFLAGS": cppflags, + "CPPDEFINES": cppdefines, + "LIBPATH": [Dir(".")], + "LIBS": ["Swiften_Boost"] + } + if env["PLATFORM"] == "win32" : + # 0x0600 = _WIN32_WINNT_VISTA + env["BOOST_FLAGS"]["CPPDEFINES"] += [("_WIN32_WINNT", "0x0600")] + if env["PLATFORM"] == "cygwin" : + env["BOOST_FLAGS"]["CPPDEFINES"] += ["__USE_W32_SOCKETS"] + elif env["PLATFORM"] == "posix" : + env["BOOST_FLAGS"]["LIBS"] += ["rt"] ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) - if os.path.basename(env["CXX"]) in ["clang", "clang++"] : - myenv.Append(CXXFLAGS = [ - "-Wno-deprecated-register", # The register keyword will be reserved in C++17, we only use C++11 though. - ]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) + if os.path.basename(env["CXX"]) in ["clang", "clang++"] : + myenv.Append(CXXFLAGS = [ + "-Wno-deprecated-register", # The register keyword will be reserved in C++17, we only use C++11 though. + ]) - sources = [ - "src/libs/atomic/src/lockpool.cpp", - "src/libs/date_time/src/gregorian/date_generators.cpp", - "src/libs/date_time/src/gregorian/greg_month.cpp", - "src/libs/date_time/src/gregorian/greg_weekday.cpp", - "src/libs/date_time/src/gregorian/gregorian_types.cpp", - "src/libs/date_time/src/posix_time/posix_time_types.cpp", - "src/libs/system/src/error_code.cpp", - "src/libs/filesystem/src/codecvt_error_category.cpp", - "src/libs/filesystem/src/operations.cpp", - "src/libs/filesystem/src/path.cpp", - "src/libs/filesystem/src/path_traits.cpp", - "src/libs/filesystem/src/portability.cpp", - "src/libs/filesystem/src/unique_path.cpp", - "src/libs/filesystem/src/windows_file_codecvt.cpp", - "src/libs/filesystem/src/filesystem_utf8_codecvt_facet.cpp", - "src/libs/regex/src/c_regex_traits.cpp", - "src/libs/regex/src/cpp_regex_traits.cpp", - "src/libs/regex/src/cregex.cpp", - "src/libs/regex/src/fileiter.cpp", - "src/libs/regex/src/icu.cpp", - "src/libs/regex/src/instances.cpp", - "src/libs/regex/src/posix_api.cpp", - "src/libs/regex/src/regex.cpp", - "src/libs/regex/src/regex_debug.cpp", - "src/libs/regex/src/regex_raw_buffer.cpp", - "src/libs/regex/src/regex_traits_defaults.cpp", - "src/libs/regex/src/static_mutex.cpp", - "src/libs/regex/src/w32_regex_traits.cpp", - "src/libs/regex/src/wc_regex_traits.cpp", - "src/libs/regex/src/wide_posix_api.cpp", - "src/libs/regex/src/winstances.cpp", - "src/libs/regex/src/usinstances.cpp", - "src/libs/program_options/src/cmdline.cpp", - "src/libs/program_options/src/config_file.cpp", - "src/libs/program_options/src/convert.cpp", - "src/libs/program_options/src/options_description.cpp", - "src/libs/program_options/src/positional_options.cpp", - "src/libs/program_options/src/split.cpp", - "src/libs/program_options/src/program_options_utf8_codecvt_facet.cpp", - "src/libs/program_options/src/value_semantic.cpp", - "src/libs/program_options/src/variables_map.cpp", - "src/libs/program_options/src/winmain.cpp", - "src/libs/serialization/src/archive_exception.cpp", - "src/libs/serialization/src/basic_archive.cpp", - "src/libs/serialization/src/basic_iarchive.cpp", - "src/libs/serialization/src/basic_iserializer.cpp", - "src/libs/serialization/src/basic_oarchive.cpp", - "src/libs/serialization/src/basic_oserializer.cpp", - "src/libs/serialization/src/basic_pointer_iserializer.cpp", - "src/libs/serialization/src/basic_pointer_oserializer.cpp", - "src/libs/serialization/src/basic_serializer_map.cpp", - "src/libs/serialization/src/basic_text_iprimitive.cpp", - "src/libs/serialization/src/basic_text_oprimitive.cpp", - "src/libs/serialization/src/basic_text_wiprimitive.cpp", - "src/libs/serialization/src/basic_text_woprimitive.cpp", - "src/libs/serialization/src/basic_xml_archive.cpp", - "src/libs/serialization/src/binary_iarchive.cpp", - "src/libs/serialization/src/binary_oarchive.cpp", - "src/libs/serialization/src/binary_wiarchive.cpp", - "src/libs/serialization/src/binary_woarchive.cpp", - "src/libs/serialization/src/codecvt_null.cpp", - "src/libs/serialization/src/extended_type_info.cpp", - "src/libs/serialization/src/extended_type_info_no_rtti.cpp", - "src/libs/serialization/src/extended_type_info_typeid.cpp", - "src/libs/serialization/src/polymorphic_iarchive.cpp", - "src/libs/serialization/src/polymorphic_oarchive.cpp", - "src/libs/serialization/src/stl_port.cpp", - "src/libs/serialization/src/text_iarchive.cpp", - "src/libs/serialization/src/text_oarchive.cpp", - "src/libs/serialization/src/text_wiarchive.cpp", - "src/libs/serialization/src/text_woarchive.cpp", - "src/libs/serialization/src/utf8_codecvt_facet.cpp", - "src/libs/serialization/src/void_cast.cpp", - "src/libs/serialization/src/xml_archive_exception.cpp", - "src/libs/serialization/src/xml_grammar.cpp", - "src/libs/serialization/src/xml_iarchive.cpp", - "src/libs/serialization/src/xml_oarchive.cpp", - "src/libs/serialization/src/xml_wgrammar.cpp", - "src/libs/serialization/src/xml_wiarchive.cpp", - "src/libs/serialization/src/xml_woarchive.cpp"] + sources = [ + "src/libs/atomic/src/lockpool.cpp", + "src/libs/date_time/src/gregorian/date_generators.cpp", + "src/libs/date_time/src/gregorian/greg_month.cpp", + "src/libs/date_time/src/gregorian/greg_weekday.cpp", + "src/libs/date_time/src/gregorian/gregorian_types.cpp", + "src/libs/date_time/src/posix_time/posix_time_types.cpp", + "src/libs/system/src/error_code.cpp", + "src/libs/filesystem/src/codecvt_error_category.cpp", + "src/libs/filesystem/src/operations.cpp", + "src/libs/filesystem/src/path.cpp", + "src/libs/filesystem/src/path_traits.cpp", + "src/libs/filesystem/src/portability.cpp", + "src/libs/filesystem/src/unique_path.cpp", + "src/libs/filesystem/src/windows_file_codecvt.cpp", + "src/libs/filesystem/src/filesystem_utf8_codecvt_facet.cpp", + "src/libs/regex/src/c_regex_traits.cpp", + "src/libs/regex/src/cpp_regex_traits.cpp", + "src/libs/regex/src/cregex.cpp", + "src/libs/regex/src/fileiter.cpp", + "src/libs/regex/src/icu.cpp", + "src/libs/regex/src/instances.cpp", + "src/libs/regex/src/posix_api.cpp", + "src/libs/regex/src/regex.cpp", + "src/libs/regex/src/regex_debug.cpp", + "src/libs/regex/src/regex_raw_buffer.cpp", + "src/libs/regex/src/regex_traits_defaults.cpp", + "src/libs/regex/src/static_mutex.cpp", + "src/libs/regex/src/w32_regex_traits.cpp", + "src/libs/regex/src/wc_regex_traits.cpp", + "src/libs/regex/src/wide_posix_api.cpp", + "src/libs/regex/src/winstances.cpp", + "src/libs/regex/src/usinstances.cpp", + "src/libs/program_options/src/cmdline.cpp", + "src/libs/program_options/src/config_file.cpp", + "src/libs/program_options/src/convert.cpp", + "src/libs/program_options/src/options_description.cpp", + "src/libs/program_options/src/positional_options.cpp", + "src/libs/program_options/src/split.cpp", + "src/libs/program_options/src/program_options_utf8_codecvt_facet.cpp", + "src/libs/program_options/src/value_semantic.cpp", + "src/libs/program_options/src/variables_map.cpp", + "src/libs/program_options/src/winmain.cpp", + "src/libs/serialization/src/archive_exception.cpp", + "src/libs/serialization/src/basic_archive.cpp", + "src/libs/serialization/src/basic_iarchive.cpp", + "src/libs/serialization/src/basic_iserializer.cpp", + "src/libs/serialization/src/basic_oarchive.cpp", + "src/libs/serialization/src/basic_oserializer.cpp", + "src/libs/serialization/src/basic_pointer_iserializer.cpp", + "src/libs/serialization/src/basic_pointer_oserializer.cpp", + "src/libs/serialization/src/basic_serializer_map.cpp", + "src/libs/serialization/src/basic_text_iprimitive.cpp", + "src/libs/serialization/src/basic_text_oprimitive.cpp", + "src/libs/serialization/src/basic_text_wiprimitive.cpp", + "src/libs/serialization/src/basic_text_woprimitive.cpp", + "src/libs/serialization/src/basic_xml_archive.cpp", + "src/libs/serialization/src/binary_iarchive.cpp", + "src/libs/serialization/src/binary_oarchive.cpp", + "src/libs/serialization/src/binary_wiarchive.cpp", + "src/libs/serialization/src/binary_woarchive.cpp", + "src/libs/serialization/src/codecvt_null.cpp", + "src/libs/serialization/src/extended_type_info.cpp", + "src/libs/serialization/src/extended_type_info_no_rtti.cpp", + "src/libs/serialization/src/extended_type_info_typeid.cpp", + "src/libs/serialization/src/polymorphic_iarchive.cpp", + "src/libs/serialization/src/polymorphic_oarchive.cpp", + "src/libs/serialization/src/stl_port.cpp", + "src/libs/serialization/src/text_iarchive.cpp", + "src/libs/serialization/src/text_oarchive.cpp", + "src/libs/serialization/src/text_wiarchive.cpp", + "src/libs/serialization/src/text_woarchive.cpp", + "src/libs/serialization/src/utf8_codecvt_facet.cpp", + "src/libs/serialization/src/void_cast.cpp", + "src/libs/serialization/src/xml_archive_exception.cpp", + "src/libs/serialization/src/xml_grammar.cpp", + "src/libs/serialization/src/xml_iarchive.cpp", + "src/libs/serialization/src/xml_oarchive.cpp", + "src/libs/serialization/src/xml_wgrammar.cpp", + "src/libs/serialization/src/xml_wiarchive.cpp", + "src/libs/serialization/src/xml_woarchive.cpp"] - if env["PLATFORM"] != "darwin" or env["target"] == "native" : - sources += [ - "src/libs/program_options/src/parsers.cpp", - ] + if env["PLATFORM"] != "darwin" or env["target"] == "native" : + sources += [ + "src/libs/program_options/src/parsers.cpp", + ] - myenv.MergeFlags(myenv["BOOST_FLAGS"]) - myenv.StaticLibrary("Swiften_Boost", sources) + myenv.MergeFlags(myenv["BOOST_FLAGS"]) + myenv.StaticLibrary("Swiften_Boost", sources) - if ARGUMENTS.get("BOOST_BUILD_BCP") or env.get("BOOST_BUILD_BCP", False) or env.GetOption("clean") : - bcp_env = myenv.Clone() - bcp_env.MergeFlags(bcp_env["BOOST_FLAGS"]) - bcp_env.Append(CPPPATH = ["src/tools/bcp"]) - bcp_env.Replace(CPPDEFINES = [flag for flag in bcp_env["CPPDEFINES"] if flag[0] != "BOOST_FILESYSTEM_VERSION"]) - bcp_env.UseFlags(bcp_env["PLATFORM_FLAGS"]) - bcp_env.Program("bcp", [ - "src/tools/bcp/add_path.cpp", - "src/tools/bcp/add_dependent_lib.cpp", - "src/tools/bcp/bcp_imp.cpp", - "src/tools/bcp/copy_path.cpp", - "src/tools/bcp/file_types.cpp", - "src/tools/bcp/fileview.cpp", - "src/tools/bcp/licence_info.cpp", - "src/tools/bcp/output_licence_info.cpp", - "src/tools/bcp/path_operations.cpp", - "src/tools/bcp/scan_cvs_path.cpp", - "src/tools/bcp/scan_licence.cpp", - "bcp.cpp", - ]) + if ARGUMENTS.get("BOOST_BUILD_BCP") or env.get("BOOST_BUILD_BCP", False) or env.GetOption("clean") : + bcp_env = myenv.Clone() + bcp_env.MergeFlags(bcp_env["BOOST_FLAGS"]) + bcp_env.Append(CPPPATH = ["src/tools/bcp"]) + bcp_env.Replace(CPPDEFINES = [flag for flag in bcp_env["CPPDEFINES"] if flag[0] != "BOOST_FILESYSTEM_VERSION"]) + bcp_env.UseFlags(bcp_env["PLATFORM_FLAGS"]) + bcp_env.Program("bcp", [ + "src/tools/bcp/add_path.cpp", + "src/tools/bcp/add_dependent_lib.cpp", + "src/tools/bcp/bcp_imp.cpp", + "src/tools/bcp/copy_path.cpp", + "src/tools/bcp/file_types.cpp", + "src/tools/bcp/fileview.cpp", + "src/tools/bcp/licence_info.cpp", + "src/tools/bcp/output_licence_info.cpp", + "src/tools/bcp/path_operations.cpp", + "src/tools/bcp/scan_cvs_path.cpp", + "src/tools/bcp/scan_licence.cpp", + "bcp.cpp", + ]) diff --git a/3rdParty/Breakpad/SConscript b/3rdParty/Breakpad/SConscript index 142634b..3b9447d 100644 --- a/3rdParty/Breakpad/SConscript +++ b/3rdParty/Breakpad/SConscript @@ -7,91 +7,91 @@ if env["PLATFORM"] == "win32" : # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["HAVE_BREAKPAD"] = True - env["BREAKPAD_FLAGS"] = { - "CPPPATH": [env.Dir("src")], - "CPPFLAGS": [], - "LIBPATH": [env.Dir(".")], - "LIBS": ["Swift_BreakPad"] - } + if env["SCONS_STAGE"] == "flags" : + env["HAVE_BREAKPAD"] = True + env["BREAKPAD_FLAGS"] = { + "CPPPATH": [env.Dir("src")], + "CPPFLAGS": [], + "LIBPATH": [env.Dir(".")], + "LIBS": ["Swift_BreakPad"] + } ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) - myenv.Append(CPPPATH = ["src"]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) + myenv.Append(CPPPATH = ["src"]) - lib_sources = [] - dumpsyms_sources = [] - common_sources = [] - if myenv["PLATFORM"] == "win32" : - myenv.Append(CPPDEFINES = ["UNICODE"]) - lib_sources += [ - "src/client/windows/handler/exception_handler.cc", - "src/client/windows/crash_generation/crash_generation_client.cc", - "src/common/windows/guid_string.cc", - ] + lib_sources = [] + dumpsyms_sources = [] + common_sources = [] + if myenv["PLATFORM"] == "win32" : + myenv.Append(CPPDEFINES = ["UNICODE"]) + lib_sources += [ + "src/client/windows/handler/exception_handler.cc", + "src/client/windows/crash_generation/crash_generation_client.cc", + "src/common/windows/guid_string.cc", + ] - if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" : - lib_sources += [ - ] - common_sources += [ - "src/common/md5.cc", - ] - - if myenv["PLATFORM"] == "darwin" : - myenv.Append(CPPDEFINES = ["HAVE_MACH_O_NLIST_H"]) - lib_sources += [ - "src/client/mac/handler/exception_handler.cc", - "src/client/mac/handler/minidump_generator.cc", - "src/client/mac/handler/dynamic_images.cc", - "src/client/mac/handler/breakpad_nlist_64.cc", - "src/client/mac/crash_generation/crash_generation_client.cc", - "src/common/mac/MachIPC.mm", - "src/common/mac/string_utilities.cc", - "src/common/mac/bootstrap_compat.cc", - "src/client/minidump_file_writer.cc", - "src/common/string_conversion.cc", - "src/common/convert_UTF.c", - ] - common_sources += [ - "src/common/mac/macho_id.cc", - "src/common/mac/macho_walker.cc", - "src/common/mac/file_id.cc", - "src/common/mac/macho_utilities.cc", - ] - dumpsyms_sources += [ - "src/tools/mac/dump_syms/dump_syms_tool.mm", - "src/common/mac/dump_syms.mm", - "src/common/mac/macho_reader.cc", - "src/common/dwarf/bytereader.cc", - "src/common/dwarf/dwarf2reader.cc", - "src/common/dwarf/dwarf2diehandler.cc", - "src/common/dwarf_line_to_module.cc", - "src/common/dwarf_cfi_to_module.cc", - "src/common/dwarf_cu_to_module.cc", - "src/common/stabs_to_module.cc", - "src/common/stabs_reader.cc", - "src/common/module.cc", - "src/common/language.cc", - ] + if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" : + lib_sources += [ + ] + common_sources += [ + "src/common/md5.cc", + ] + + if myenv["PLATFORM"] == "darwin" : + myenv.Append(CPPDEFINES = ["HAVE_MACH_O_NLIST_H"]) + lib_sources += [ + "src/client/mac/handler/exception_handler.cc", + "src/client/mac/handler/minidump_generator.cc", + "src/client/mac/handler/dynamic_images.cc", + "src/client/mac/handler/breakpad_nlist_64.cc", + "src/client/mac/crash_generation/crash_generation_client.cc", + "src/common/mac/MachIPC.mm", + "src/common/mac/string_utilities.cc", + "src/common/mac/bootstrap_compat.cc", + "src/client/minidump_file_writer.cc", + "src/common/string_conversion.cc", + "src/common/convert_UTF.c", + ] + common_sources += [ + "src/common/mac/macho_id.cc", + "src/common/mac/macho_walker.cc", + "src/common/mac/file_id.cc", + "src/common/mac/macho_utilities.cc", + ] + dumpsyms_sources += [ + "src/tools/mac/dump_syms/dump_syms_tool.mm", + "src/common/mac/dump_syms.mm", + "src/common/mac/macho_reader.cc", + "src/common/dwarf/bytereader.cc", + "src/common/dwarf/dwarf2reader.cc", + "src/common/dwarf/dwarf2diehandler.cc", + "src/common/dwarf_line_to_module.cc", + "src/common/dwarf_cfi_to_module.cc", + "src/common/dwarf_cu_to_module.cc", + "src/common/stabs_to_module.cc", + "src/common/stabs_reader.cc", + "src/common/module.cc", + "src/common/language.cc", + ] - if myenv["PLATFORM"] == "linux" : - dumpsyms_sources += ["src/tools/linux/dump_syms/dump_syms.cc"] + if myenv["PLATFORM"] == "linux" : + dumpsyms_sources += ["src/tools/linux/dump_syms/dump_syms.cc"] - common_objects = myenv.StaticObject(common_sources) + common_objects = myenv.StaticObject(common_sources) - myenv.StaticLibrary("Swift_BreakPad", lib_sources + common_objects) + myenv.StaticLibrary("Swift_BreakPad", lib_sources + common_objects) - #if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" : - # myenv.Program("dump_syms", dumpsyms_sources + common_objects) + #if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" : + # myenv.Program("dump_syms", dumpsyms_sources + common_objects) else : - if env["SCONS_STAGE"] == "flags" : - env["HAVE_BREAKPAD"] = False - env["BREAKPAD_FLAGS"] = {} + if env["SCONS_STAGE"] == "flags" : + env["HAVE_BREAKPAD"] = False + env["BREAKPAD_FLAGS"] = {} diff --git a/3rdParty/CppUnit/SConscript b/3rdParty/CppUnit/SConscript index addc8ab..0b97289 100644 --- a/3rdParty/CppUnit/SConscript +++ b/3rdParty/CppUnit/SConscript @@ -2,65 +2,65 @@ Import("env") if env["TEST"] : - if env["PLATFORM"] == "win32" : - cppflags = ["/I" + Dir("src/include").abspath] - elif env["PLATFORM"] == "sunos" : - cppflags = [("-I" + Dir("src/include").abspath)] - else : - cppflags = [("-isystem", Dir("src/include").abspath)] + if env["PLATFORM"] == "win32" : + cppflags = ["/I" + Dir("src/include").abspath] + elif env["PLATFORM"] == "sunos" : + cppflags = [("-I" + Dir("src/include").abspath)] + else : + cppflags = [("-isystem", Dir("src/include").abspath)] ################################################################################ # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["CPPUNIT_FLAGS"] = { - "CPPPATH": [env.Dir(".")], - "CPPFLAGS": cppflags, - "LIBPATH": [env.Dir(".")], - "LIBS": ["Swiften_CppUnit"] - } + if env["SCONS_STAGE"] == "flags" : + env["CPPUNIT_FLAGS"] = { + "CPPPATH": [env.Dir(".")], + "CPPFLAGS": cppflags, + "LIBPATH": [env.Dir(".")], + "LIBS": ["Swiften_CppUnit"] + } ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) - myenv.Append(CPPPATH = ["src/include", "."]) - sources = [ - "src/src/cppunit/TextTestRunner.cpp", - "src/src/cppunit/TextTestProgressListener.cpp", - "src/src/cppunit/BriefTestProgressListener.cpp", - "src/src/cppunit/TextOutputter.cpp", - "src/src/cppunit/XmlOutputter.cpp", - "src/src/cppunit/XmlElement.cpp", - "src/src/cppunit/XmlDocument.cpp", - "src/src/cppunit/StringTools.cpp", - "src/src/cppunit/DefaultProtector.cpp", - "src/src/cppunit/Protector.cpp", - "src/src/cppunit/ProtectorChain.cpp", - "src/src/cppunit/SynchronizedObject.cpp", - "src/src/cppunit/SourceLine.cpp", - "src/src/cppunit/TestRunner.cpp", - "src/src/cppunit/TestFactoryRegistry.cpp", - "src/src/cppunit/TestSuite.cpp", - "src/src/cppunit/TestSuiteBuilderContext.cpp", - "src/src/cppunit/TestResult.cpp", - "src/src/cppunit/TestResultCollector.cpp", - "src/src/cppunit/TestSuccessListener.cpp", - "src/src/cppunit/TestComposite.cpp", - "src/src/cppunit/TestCase.cpp", - "src/src/cppunit/TestFailure.cpp", - "src/src/cppunit/TestLeaf.cpp", - "src/src/cppunit/TestNamer.cpp", - "src/src/cppunit/Asserter.cpp", - "src/src/cppunit/TypeInfoHelper.cpp", - "src/src/cppunit/Exception.cpp", - "src/src/cppunit/Message.cpp", - "src/src/cppunit/AdditionalMessage.cpp", - "src/src/cppunit/Test.cpp", - "src/src/cppunit/TestPath.cpp" - ] - myenv.StaticLibrary("Swiften_CppUnit", sources) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")]) + myenv.Append(CPPPATH = ["src/include", "."]) + sources = [ + "src/src/cppunit/TextTestRunner.cpp", + "src/src/cppunit/TextTestProgressListener.cpp", + "src/src/cppunit/BriefTestProgressListener.cpp", + "src/src/cppunit/TextOutputter.cpp", + "src/src/cppunit/XmlOutputter.cpp", + "src/src/cppunit/XmlElement.cpp", + "src/src/cppunit/XmlDocument.cpp", + "src/src/cppunit/StringTools.cpp", + "src/src/cppunit/DefaultProtector.cpp", + "src/src/cppunit/Protector.cpp", + "src/src/cppunit/ProtectorChain.cpp", + "src/src/cppunit/SynchronizedObject.cpp", + "src/src/cppunit/SourceLine.cpp", + "src/src/cppunit/TestRunner.cpp", + "src/src/cppunit/TestFactoryRegistry.cpp", + "src/src/cppunit/TestSuite.cpp", + "src/src/cppunit/TestSuiteBuilderContext.cpp", + "src/src/cppunit/TestResult.cpp", + "src/src/cppunit/TestResultCollector.cpp", + "src/src/cppunit/TestSuccessListener.cpp", + "src/src/cppunit/TestComposite.cpp", + "src/src/cppunit/TestCase.cpp", + "src/src/cppunit/TestFailure.cpp", + "src/src/cppunit/TestLeaf.cpp", + "src/src/cppunit/TestNamer.cpp", + "src/src/cppunit/Asserter.cpp", + "src/src/cppunit/TypeInfoHelper.cpp", + "src/src/cppunit/Exception.cpp", + "src/src/cppunit/Message.cpp", + "src/src/cppunit/AdditionalMessage.cpp", + "src/src/cppunit/Test.cpp", + "src/src/cppunit/TestPath.cpp" + ] + myenv.StaticLibrary("Swiften_CppUnit", sources) diff --git a/3rdParty/Expat/SConscript b/3rdParty/Expat/SConscript index c961483..56949aa 100644 --- a/3rdParty/Expat/SConscript +++ b/3rdParty/Expat/SConscript @@ -1,29 +1,29 @@ Import(["env", "conf_env"]) if env.get("EXPAT_BUNDLED", False) : - if env["SCONS_STAGE"] == "flags" : - env["EXPAT_FLAGS"] = { - "CPPDEFINES": ["XML_STATIC"], - "CPPPATH": [Dir("src")], - "LIBPATH": [Dir(".")], - } + if env["SCONS_STAGE"] == "flags" : + env["EXPAT_FLAGS"] = { + "CPPDEFINES": ["XML_STATIC"], + "CPPPATH": [Dir("src")], + "LIBPATH": [Dir(".")], + } - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Append(CPPDEFINES = ["XML_STATIC", "HAVE_EXPAT_CONFIG_H"]) - if env.get("BOOST_BUNDLED", False) : - myenv.Append(CPPPATH = [".", "src", "../Boost/src"]) - else : - myenv.Append(CPPPATH = [".", "src"]) - myenv.MergeFlags(env["BOOST_FLAGS"]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Append(CPPDEFINES = ["XML_STATIC", "HAVE_EXPAT_CONFIG_H"]) + if env.get("BOOST_BUNDLED", False) : + myenv.Append(CPPPATH = [".", "src", "../Boost/src"]) + else : + myenv.Append(CPPPATH = [".", "src"]) + myenv.MergeFlags(env["BOOST_FLAGS"]) - conf = Configure(conf_env) - if conf.CheckFunc('memmove') : - myenv.Append(CPPDEFINES = ["HAVE_MEMMOVE"]) - conf.Finish() + conf = Configure(conf_env) + if conf.CheckFunc('memmove') : + myenv.Append(CPPDEFINES = ["HAVE_MEMMOVE"]) + conf.Finish() - env["EXPAT_OBJECTS"] = myenv.SwiftenObject([ - "src/xmltok.c", - "src/xmlparse.c", - "src/xmlrole.c" - ]) + env["EXPAT_OBJECTS"] = myenv.SwiftenObject([ + "src/xmltok.c", + "src/xmlparse.c", + "src/xmlrole.c" + ]) diff --git a/3rdParty/Ldns/SConscript b/3rdParty/Ldns/SConscript index a43bde7..eae2e5c 100644 --- a/3rdParty/Ldns/SConscript +++ b/3rdParty/Ldns/SConscript @@ -2,69 +2,68 @@ Import("env") if env.get("LDNS_BUNDLED", False) : - if env["PLATFORM"] == "win32" : - cppflags = ["/I" + Dir("#/3rdParty/Ldns/src/ldns").abspath] - else : - cppflags = [("-isystem", Dir("#/3rdParty/Ldns/src/ldns").abspath)] + if env["PLATFORM"] == "win32" : + cppflags = ["/I" + Dir("#/3rdParty/Ldns/src/ldns").abspath] + else : + cppflags = [("-isystem", Dir("#/3rdParty/Ldns/src/ldns").abspath)] ################################################################################ # Flags ################################################################################ - - if env["SCONS_STAGE"] == "flags" : - env["LDNS_FLAGS"] = { - "CPPPATH": [Dir("src/ldns")], - "CPPFLAGS": cppflags, - "LIBPATH": [env.Dir(".")], - "LIBS": ["Swiften_Ldns"], - } - if env["target"] == "android" : - env["LDNS_FLAGS"]["CPPPATH"].append(Dir("src/android")) + if env["SCONS_STAGE"] == "flags" : + env["LDNS_FLAGS"] = { + "CPPPATH": [Dir("src/ldns")], + "CPPFLAGS": cppflags, + "LIBPATH": [env.Dir(".")], + "LIBS": ["Swiften_Ldns"], + } + if env["target"] == "android" : + env["LDNS_FLAGS"]["CPPPATH"].append(Dir("src/android")) ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Append(CPPDEFINES = [("LDNS_STATICLIB")]) - myenv.Append(CPPPATH = ["src/ldns", "."]) - if env["target"] == "android" : - myenv.Append(CPPPATH = ["src/android"]) - myenv.UseFlags(env["OPENSSL_FLAGS"]) - - env["LDNS_OBJECTS"] = myenv.SwiftenObject([ - "src/ldns/compat/b32_ntop.c", - "src/ldns/compat/b32_pton.c", - "src/ldns/compat/b64_ntop.c", - "src/ldns/compat/b64_pton.c", - "src/ldns/buffer.c", - "src/ldns/dname.c", - "src/ldns/dnssec_sign.c", - "src/ldns/dnssec_verify.c", - "src/ldns/dnssec_zone.c", - "src/ldns/dnssec.c", - "src/ldns/error.c", - "src/ldns/higher.c", - "src/ldns/host2str.c", - "src/ldns/host2wire.c", - "src/ldns/keys.c", - "src/ldns/linktest.c", - "src/ldns/net.c", - "src/ldns/packet.c", - "src/ldns/parse.c", - "src/ldns/rbtree.c", - "src/ldns/rdata.c", - "src/ldns/resolver.c", - "src/ldns/rr_functions.c", - "src/ldns/rr.c", - "src/ldns/sha1.c", - "src/ldns/sha2.c", - "src/ldns/str2host.c", - "src/ldns/tsig.c", - "src/ldns/update.c", - "src/ldns/util.c", - "src/ldns/wire2host.c", - "src/ldns/zone.c", - ]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Append(CPPDEFINES = [("LDNS_STATICLIB")]) + myenv.Append(CPPPATH = ["src/ldns", "."]) + if env["target"] == "android" : + myenv.Append(CPPPATH = ["src/android"]) + myenv.UseFlags(env["OPENSSL_FLAGS"]) + + env["LDNS_OBJECTS"] = myenv.SwiftenObject([ + "src/ldns/compat/b32_ntop.c", + "src/ldns/compat/b32_pton.c", + "src/ldns/compat/b64_ntop.c", + "src/ldns/compat/b64_pton.c", + "src/ldns/buffer.c", + "src/ldns/dname.c", + "src/ldns/dnssec_sign.c", + "src/ldns/dnssec_verify.c", + "src/ldns/dnssec_zone.c", + "src/ldns/dnssec.c", + "src/ldns/error.c", + "src/ldns/higher.c", + "src/ldns/host2str.c", + "src/ldns/host2wire.c", + "src/ldns/keys.c", + "src/ldns/linktest.c", + "src/ldns/net.c", + "src/ldns/packet.c", + "src/ldns/parse.c", + "src/ldns/rbtree.c", + "src/ldns/rdata.c", + "src/ldns/resolver.c", + "src/ldns/rr_functions.c", + "src/ldns/rr.c", + "src/ldns/sha1.c", + "src/ldns/sha2.c", + "src/ldns/str2host.c", + "src/ldns/tsig.c", + "src/ldns/update.c", + "src/ldns/util.c", + "src/ldns/wire2host.c", + "src/ldns/zone.c", + ]) diff --git a/3rdParty/LibIDN/SConscript b/3rdParty/LibIDN/SConscript index e3ed839..90892b0 100644 --- a/3rdParty/LibIDN/SConscript +++ b/3rdParty/LibIDN/SConscript @@ -8,67 +8,67 @@ if env.get("LIBIDN_BUNDLED", False) : # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["LIBIDN_FLAGS"] = { - "CPPDEFINES": ["LIBIDN_STATIC"], - } - if os.path.basename(env["CC"]) in ("clang", "gcc") : - env["LIBIDN_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibIDN/src"]}) - else : - env["LIBIDN_FLAGS"].update({"CPPPATH": [Dir("src")]}) + if env["SCONS_STAGE"] == "flags" : + env["LIBIDN_FLAGS"] = { + "CPPDEFINES": ["LIBIDN_STATIC"], + } + if os.path.basename(env["CC"]) in ("clang", "gcc") : + env["LIBIDN_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibIDN/src"]}) + else : + env["LIBIDN_FLAGS"].update({"CPPPATH": [Dir("src")]}) - if env["PLATFORM"] == "win32" : - env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] - if float(env["MSVC_VERSION"]) < 14: - env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/stdbool")] - if env["MSVC_VERSION"][:3] == "9.0" : - env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] + if env["PLATFORM"] == "win32" : + env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] + if float(env["MSVC_VERSION"]) < 14: + env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/stdbool")] + if env["MSVC_VERSION"][:3] == "9.0" : + env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() - # Remove warn flags - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + # Remove warn flags + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - # Check for strcasecmp() or replacement - conf = Configure(conf_env) - if not conf.CheckFunc('strcasecmp') : - if conf.CheckFunc("stricmp") : - myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")]) - else : - print "Error: Cannot find strcasecmp() or stricmp()" - Exit(1) - if not conf.CheckFunc('strncasecmp') : - if conf.CheckFunc("strnicmp") : - myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")]) - else : - print "Error: Cannot find strncasecmp() or strnicmp()" - Exit(1) - conf.Finish() + # Check for strcasecmp() or replacement + conf = Configure(conf_env) + if not conf.CheckFunc('strcasecmp') : + if conf.CheckFunc("stricmp") : + myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")]) + else : + print "Error: Cannot find strcasecmp() or stricmp()" + Exit(1) + if not conf.CheckFunc('strncasecmp') : + if conf.CheckFunc("strnicmp") : + myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")]) + else : + print "Error: Cannot find strncasecmp() or strnicmp()" + Exit(1) + conf.Finish() - myenv.Append(CPPDEFINES = ["LIBIDN_STATIC", "HAVE_CONFIG_H"]) - myenv.Append(CPPPATH = ["src", "stubs", "src/gl"]) - if myenv["PLATFORM"] == "win32" : - myenv.Append(CPPPATH = "stubs/win32") - if float(env["MSVC_VERSION"]) < 14: - myenv.Append(CPPPATH = "stubs/win32/stdbool") - if myenv["MSVC_VERSION"][:3] == "9.0" : - myenv.Append(CPPPATH = "stubs/win32/VC2008") + myenv.Append(CPPDEFINES = ["LIBIDN_STATIC", "HAVE_CONFIG_H"]) + myenv.Append(CPPPATH = ["src", "stubs", "src/gl"]) + if myenv["PLATFORM"] == "win32" : + myenv.Append(CPPPATH = "stubs/win32") + if float(env["MSVC_VERSION"]) < 14: + myenv.Append(CPPPATH = "stubs/win32/stdbool") + if myenv["MSVC_VERSION"][:3] == "9.0" : + myenv.Append(CPPPATH = "stubs/win32/VC2008") - env["LIBIDN_OBJECTS"] = myenv.SwiftenObject([ - "src/stringprep.c", - "src/profiles.c", - "src/rfc3454.c", - "src/punycode.c", - "src/idna.c", - "src/toutf8.c", - "src/nfkc.c", - "src/gl/c-ctype.c", - "src/gl/c-strcasecmp.c", - "src/gl/c-strncasecmp.c", - "src/gl/unistr/u8-check.c" - ]) + env["LIBIDN_OBJECTS"] = myenv.SwiftenObject([ + "src/stringprep.c", + "src/profiles.c", + "src/rfc3454.c", + "src/punycode.c", + "src/idna.c", + "src/toutf8.c", + "src/nfkc.c", + "src/gl/c-ctype.c", + "src/gl/c-strcasecmp.c", + "src/gl/c-strncasecmp.c", + "src/gl/unistr/u8-check.c" + ]) diff --git a/3rdParty/LibMiniUPnPc/SConscript b/3rdParty/LibMiniUPnPc/SConscript index 05eed8f..3c2e29d 100644 --- a/3rdParty/LibMiniUPnPc/SConscript +++ b/3rdParty/LibMiniUPnPc/SConscript @@ -8,51 +8,51 @@ if env.get("LIBMINIUPNPC_BUNDLED", False) : # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["HAVE_LIBMINIUPNPC"] = True - env["LIBMINIUPNPC_FLAGS"] = { - "LIBPATH": [Dir(".")], - "INTERNAL_CPPDEFINES": ["STATICLIB"], - } - if os.path.basename(env["CC"]) in ("clang", "gcc") : - env["LIBMINIUPNPC_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibMiniUPnPc/src/miniupnpc"]}) - else : - env["LIBMINIUPNPC_FLAGS"].update({"CPPPATH": [Dir("src/miniupnpc")]}) - - #if env["PLATFORM"] == "win32" : - # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] - # if env["MSVC_VERSION"][:3] == "9.0" : - # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] + if env["SCONS_STAGE"] == "flags" : + env["HAVE_LIBMINIUPNPC"] = True + env["LIBMINIUPNPC_FLAGS"] = { + "LIBPATH": [Dir(".")], + "INTERNAL_CPPDEFINES": ["STATICLIB"], + } + if os.path.basename(env["CC"]) in ("clang", "gcc") : + env["LIBMINIUPNPC_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibMiniUPnPc/src/miniupnpc"]}) + else : + env["LIBMINIUPNPC_FLAGS"].update({"CPPPATH": [Dir("src/miniupnpc")]}) + + #if env["PLATFORM"] == "win32" : + # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] + # if env["MSVC_VERSION"][:3] == "9.0" : + # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Append(CPPPATH = ["src"]) - # Remove warn flags - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Append(CPPPATH = ["src"]) + # Remove warn flags + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"]) + myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"]) - if myenv["PLATFORM"] != "win32": - myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"]) - myenv.Append(CCFLAGS = ["-D_BSD_SOURCE"]) + if myenv["PLATFORM"] != "win32": + myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"]) + myenv.Append(CCFLAGS = ["-D_BSD_SOURCE"]) - if myenv["PLATFORM"] == "darwin": - myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"]) + if myenv["PLATFORM"] == "darwin": + myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"]) - if myenv["PLATFORM"] == "win32": - myenv.Append(CCFLAGS = ["-DWIN32", "-D_WIN32_WINNT=0x0501"]) + if myenv["PLATFORM"] == "win32": + myenv.Append(CCFLAGS = ["-DWIN32", "-D_WIN32_WINNT=0x0501"]) - if myenv["PLATFORM"] != "win32" and myenv["PLATFORM"] != "darwin": - conf = Configure(conf_env) - if conf.CheckTypeSize("struct ip_mreqn", includes="#include <netinet/in.h>") == 0: - myenv.Append(CCFLAGS = ["-DNEED_STRUCT_IP_MREQN"]) - conf.Finish() + if myenv["PLATFORM"] != "win32" and myenv["PLATFORM"] != "darwin": + conf = Configure(conf_env) + if conf.CheckTypeSize("struct ip_mreqn", includes="#include <netinet/in.h>") == 0: + myenv.Append(CCFLAGS = ["-DNEED_STRUCT_IP_MREQN"]) + conf.Finish() - myenv.WriteVal("src/miniupnpc/miniupnpcstrings.h", myenv.Value( + myenv.WriteVal("src/miniupnpc/miniupnpcstrings.h", myenv.Value( """ #ifndef __MINIUPNPCSTRINGS_H__ #define __MINIUPNPCSTRINGS_H__ @@ -63,22 +63,22 @@ if env.get("LIBMINIUPNPC_BUNDLED", False) : #endif """.replace("$OS_STRING", myenv["PLATFORM"]))) - miniupnpc_objects = [ - "src/miniupnpc/igd_desc_parse.c", - "src/miniupnpc/miniupnpc.c", - "src/miniupnpc/minixml.c", - "src/miniupnpc/minisoap.c", - "src/miniupnpc/miniwget.c", - #"src/miniupnpc/upnpc.c", - "src/miniupnpc/upnpcommands.c", - "src/miniupnpc/upnpreplyparse.c", - "src/miniupnpc/upnperrors.c", - "src/miniupnpc/connecthostport.c", - "src/miniupnpc/portlistingparse.c", - "src/miniupnpc/receivedata.c" - ] - - if myenv["PLATFORM"] != "win32": - miniupnpc_objects.append("src/miniupnpc/minissdpc.c") - - env["LIBMINIUPNPC_OBJECTS"] = myenv.SwiftenObject(miniupnpc_objects) + miniupnpc_objects = [ + "src/miniupnpc/igd_desc_parse.c", + "src/miniupnpc/miniupnpc.c", + "src/miniupnpc/minixml.c", + "src/miniupnpc/minisoap.c", + "src/miniupnpc/miniwget.c", + #"src/miniupnpc/upnpc.c", + "src/miniupnpc/upnpcommands.c", + "src/miniupnpc/upnpreplyparse.c", + "src/miniupnpc/upnperrors.c", + "src/miniupnpc/connecthostport.c", + "src/miniupnpc/portlistingparse.c", + "src/miniupnpc/receivedata.c" + ] + + if myenv["PLATFORM"] != "win32": + miniupnpc_objects.append("src/miniupnpc/minissdpc.c") + + env["LIBMINIUPNPC_OBJECTS"] = myenv.SwiftenObject(miniupnpc_objects) diff --git a/3rdParty/LibNATPMP/SConscript b/3rdParty/LibNATPMP/SConscript index 2a58242..e1aef1c 100644 --- a/3rdParty/LibNATPMP/SConscript +++ b/3rdParty/LibNATPMP/SConscript @@ -8,49 +8,49 @@ if env.get("LIBNATPMP_BUNDLED", False) : # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["HAVE_LIBNATPMP"] = True - env["LIBNATPMP_FLAGS"] = { - "LIBPATH": [Dir(".")], - "INTERNAL_CPPDEFINES": ["STATICLIB"], - } - if os.path.basename(env["CC"]) in ("clang", "gcc") : - env["LIBNATPMP_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibNATPMP/src/libnatpmp"]}) - else : - env["LIBNATPMP_FLAGS"].update({"CPPPATH": [Dir("src/libnatpmp")]}) - #if env["PLATFORM"] == "win32" : - # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] - # if env["MSVC_VERSION"][:3] == "9.0" : - # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] + if env["SCONS_STAGE"] == "flags" : + env["HAVE_LIBNATPMP"] = True + env["LIBNATPMP_FLAGS"] = { + "LIBPATH": [Dir(".")], + "INTERNAL_CPPDEFINES": ["STATICLIB"], + } + if os.path.basename(env["CC"]) in ("clang", "gcc") : + env["LIBNATPMP_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibNATPMP/src/libnatpmp"]}) + else : + env["LIBNATPMP_FLAGS"].update({"CPPPATH": [Dir("src/libnatpmp")]}) + #if env["PLATFORM"] == "win32" : + # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")] + # if env["MSVC_VERSION"][:3] == "9.0" : + # env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")] ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Append(CPPPATH = ["src"]) - # Remove warn flags - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - - myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"]) - - #if myenv["PLATFORM"] != "win32": - # myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"]) - - if myenv["PLATFORM"] == "darwin": - myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"]) - - if myenv["PLATFORM"] == "win32": - myenv.Append(CCFLAGS = ["-DWIN32"]) - - src_files = [ - "src/libnatpmp/getgateway.c", - "src/libnatpmp/natpmp.c", - "src/libnatpmp/natpmpc.c", - ] - - if myenv["PLATFORM"] == "win32": - src_files += ["src/libnatpmp/wingettimeofday.c"] - - env["LIBNATPMP_OBJECTS"] = myenv.SwiftenObject(src_files) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Append(CPPPATH = ["src"]) + # Remove warn flags + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + + myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"]) + + #if myenv["PLATFORM"] != "win32": + # myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"]) + + if myenv["PLATFORM"] == "darwin": + myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"]) + + if myenv["PLATFORM"] == "win32": + myenv.Append(CCFLAGS = ["-DWIN32"]) + + src_files = [ + "src/libnatpmp/getgateway.c", + "src/libnatpmp/natpmp.c", + "src/libnatpmp/natpmpc.c", + ] + + if myenv["PLATFORM"] == "win32": + src_files += ["src/libnatpmp/wingettimeofday.c"] + + env["LIBNATPMP_OBJECTS"] = myenv.SwiftenObject(src_files) diff --git a/3rdParty/Lua/SConscript b/3rdParty/Lua/SConscript index f73286f..d2475f6 100644 --- a/3rdParty/Lua/SConscript +++ b/3rdParty/Lua/SConscript @@ -6,76 +6,76 @@ if env.get("LUA_BUNDLED", False) : # Module flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["HAVE_LUA"] = True - cppdefines = [] - if not env["optimize"] : - cppdefines.append("LUA_USE_APICHECK") - if env["PLATFORM"] == "win32" : - pass - elif env["PLATFORM"] == "darwin" : - cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"] - else : - cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"] + if env["SCONS_STAGE"] == "flags" : + env["HAVE_LUA"] = True + cppdefines = [] + if not env["optimize"] : + cppdefines.append("LUA_USE_APICHECK") + if env["PLATFORM"] == "win32" : + pass + elif env["PLATFORM"] == "darwin" : + cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"] + else : + cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"] - env["LUA_FLAGS"] = { - "CPPDEFINES": cppdefines, - "CPPPATH": [Dir("src")], - "LIBPATH": [Dir(".")], - "LIBS": ["Swiften_Lua"], - } + env["LUA_FLAGS"] = { + "CPPDEFINES": cppdefines, + "CPPPATH": [Dir("src")], + "LIBPATH": [Dir(".")], + "LIBS": ["Swiften_Lua"], + } ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() - # Remove warn flags - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if not flag.startswith("-W")]) - if "clang" in env["CC"] : - myenv.Append(CCFLAGS = ["-Wno-unknown-warning-option", "-Wno-empty-body"]) + # Remove warn flags + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if not flag.startswith("-W")]) + if "clang" in env["CC"] : + myenv.Append(CCFLAGS = ["-Wno-unknown-warning-option", "-Wno-empty-body"]) - myenv.MergeFlags(myenv["LUA_FLAGS"]) - myenv.StaticLibrary("Swiften_Lua", [ - "src/lapi.c", - "src/lcode.c", - "src/ldebug.c", - "src/ldo.c", - "src/ldump.c", - "src/lfunc.c", - "src/lgc.c", - "src/llex.c", - "src/lmem.c", - "src/lobject.c", - "src/lopcodes.c", - "src/lparser.c", - "src/lstate.c", - "src/lstring.c", - "src/ltable.c", - "src/ltm.c", - "src/lundump.c", - "src/lvm.c", - "src/lzio.c", - "src/lauxlib.c", - "src/lbaselib.c", - "src/ldblib.c", - "src/liolib.c", - "src/lmathlib.c", - "src/loslib.c", - "src/ltablib.c", - "src/lstrlib.c", - "src/loadlib.c", - ]) + myenv.MergeFlags(myenv["LUA_FLAGS"]) + myenv.StaticLibrary("Swiften_Lua", [ + "src/lapi.c", + "src/lcode.c", + "src/ldebug.c", + "src/ldo.c", + "src/ldump.c", + "src/lfunc.c", + "src/lgc.c", + "src/llex.c", + "src/lmem.c", + "src/lobject.c", + "src/lopcodes.c", + "src/lparser.c", + "src/lstate.c", + "src/lstring.c", + "src/ltable.c", + "src/ltm.c", + "src/lundump.c", + "src/lvm.c", + "src/lzio.c", + "src/lauxlib.c", + "src/lbaselib.c", + "src/ldblib.c", + "src/liolib.c", + "src/lmathlib.c", + "src/loslib.c", + "src/ltablib.c", + "src/lstrlib.c", + "src/loadlib.c", + ]) - lua_env = myenv.Clone() - lua_env.MergeFlags(lua_env["LUA_FLAGS"]) - if lua_env.get("HAVE_READLINE", False) : - lua_env.Append(CPPDEFINES = ["LUA_USE_READLINE"]) - lua_env.MergeFlags(lua_env["READLINE_FLAGS"]) - lua_env.MergeFlags(myenv["PLATFORM_FLAGS"]) - lua_env.Program("lua", [ - "src/linit.c", - "src/lua.c", - ]) + lua_env = myenv.Clone() + lua_env.MergeFlags(lua_env["LUA_FLAGS"]) + if lua_env.get("HAVE_READLINE", False) : + lua_env.Append(CPPDEFINES = ["LUA_USE_READLINE"]) + lua_env.MergeFlags(lua_env["READLINE_FLAGS"]) + lua_env.MergeFlags(myenv["PLATFORM_FLAGS"]) + lua_env.Program("lua", [ + "src/linit.c", + "src/lua.c", + ]) diff --git a/3rdParty/OpenSSL/SConscript b/3rdParty/OpenSSL/SConscript index 6af3d49..c95ea05 100644 --- a/3rdParty/OpenSSL/SConscript +++ b/3rdParty/OpenSSL/SConscript @@ -3,658 +3,658 @@ Import("env", "conf_env") openssl_bundle_dir = "openssl" if env.get("OPENSSL_BUNDLED", False) : - if env["SCONS_STAGE"] == "flags" : - env["OPENSSL_FLAGS"] = { - "CPPPATH": [Dir(openssl_bundle_dir + "/include")], - "LIBPATH": [Dir(".")], - "LIBS": ["ssl", "crypto"] - } + if env["SCONS_STAGE"] == "flags" : + env["OPENSSL_FLAGS"] = { + "CPPPATH": [Dir(openssl_bundle_dir + "/include")], + "LIBPATH": [Dir(".")], + "LIBS": ["ssl", "crypto"] + } - if env["SCONS_STAGE"] == "build" : - openssl_env = env.Clone() - openssl_env["OPENSSL_BUNDLE_DIR"] = openssl_bundle_dir - openssl_env.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - openssl_env.Append(CPPPATH = [ - "$OPENSSL_BUNDLE_DIR", - "$OPENSSL_BUNDLE_DIR/crypto", - "$OPENSSL_BUNDLE_DIR/crypto/asn1", - "$OPENSSL_BUNDLE_DIR/crypto/evp", - "$OPENSSL_BUNDLE_DIR/crypto/modes", - "$OPENSSL_BUNDLE_DIR/include" - ]) - if env["PLATFORM"] == "win32" : - openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "L_ENDIAN", "OPENSSL_SYSNAME_WIN32", "WIN32_LEAN_AND_MEAN"]) - else : - openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "DSO_DLFCN", "HAVE_DLFCN_H", "L_ENDIAN"]) + if env["SCONS_STAGE"] == "build" : + openssl_env = env.Clone() + openssl_env["OPENSSL_BUNDLE_DIR"] = openssl_bundle_dir + openssl_env.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + openssl_env.Append(CPPPATH = [ + "$OPENSSL_BUNDLE_DIR", + "$OPENSSL_BUNDLE_DIR/crypto", + "$OPENSSL_BUNDLE_DIR/crypto/asn1", + "$OPENSSL_BUNDLE_DIR/crypto/evp", + "$OPENSSL_BUNDLE_DIR/crypto/modes", + "$OPENSSL_BUNDLE_DIR/include" + ]) + if env["PLATFORM"] == "win32" : + openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "L_ENDIAN", "OPENSSL_SYSNAME_WIN32", "WIN32_LEAN_AND_MEAN"]) + else : + openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "DSO_DLFCN", "HAVE_DLFCN_H", "L_ENDIAN"]) - # Detect 32/64 bit - conf = Configure(conf_env) - if conf.CheckDeclaration("__LP64__") : - openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned int"), ("MD32_REG_T", "int")]) - else : - openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned long")]) - conf.Finish() + # Detect 32/64 bit + conf = Configure(conf_env) + if conf.CheckDeclaration("__LP64__") : + openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned int"), ("MD32_REG_T", "int")]) + else : + openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned long")]) + conf.Finish() - # case-sensitive sorted list of OpenSSL objects for openssl-1.0.1j - env["OPENSSL_OBJECTS"] = openssl_env.SwiftenObject([ - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cbc.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cfb.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_core.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ctr.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ige.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_misc.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ofb.c", - "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_wrap.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bitstr.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bool.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bytes.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_d2i_fp.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_digest.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_dup.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_enum.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_gentm.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_i2d_fp.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_int.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_mbstr.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_object.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_octet.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_set.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strex.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strnid.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_time.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_type.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utctm.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utf8.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_verify.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/ameth_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_gen.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_par.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_mime.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_moid.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_pack.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_ndef.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pr.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pu.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/evp_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_enum.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_int.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_string.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pr.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pu.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/n_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/nsseq.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbe.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbev2.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/p8_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_bitst.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_crl.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_req.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_spki.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509a.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_dec.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_fre.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_new.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_typ.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_utl.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_algor.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_attrib.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_bignum.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_crl.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_exten.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_info.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_long.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_name.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_nx509.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pubkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_req.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_sig.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_spki.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_val.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509.c", - "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509a.c", - "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_cfb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ofb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/b_dump.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/b_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/b_sock.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_buff.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_nbio.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_cb.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_acpt.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_bio.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_conn.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_dgram.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_fd.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_file.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_log.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_mem.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_sock.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_add.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_asm.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_blind.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_const.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_ctx.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_depr.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_div.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp2.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gcd.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gf2m.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_kron.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mod.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mont.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mpi.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mul.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_nist.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_prime.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_rand.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_recp.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_shift.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqr.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqrt.c", - "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_word.c", - "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_str.c", - "$OPENSSL_BUNDLE_DIR/crypto/buffer/buffer.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/camellia.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cbc.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cfb.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ctr.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_misc.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ofb.c", - "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_utl.c", - "$OPENSSL_BUNDLE_DIR/crypto/cast/c_cfb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/cast/c_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ofb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/cast/c_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/cmac/cmac.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_att.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_cd.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_dd.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_env.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_ess.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_io.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_pwri.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_sd.c", - "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_smime.c", - "$OPENSSL_BUNDLE_DIR/crypto/comp/c_rle.c", - "$OPENSSL_BUNDLE_DIR/crypto/comp/c_zlib.c", - "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_api.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_def.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mall.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mod.c", - "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_sap.c", - "$OPENSSL_BUNDLE_DIR/crypto/cpt_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/cryptlib.c", - "$OPENSSL_BUNDLE_DIR/crypto/cversion.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_cksm.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64ede.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/cfb_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/des_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/des_old.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/des_old2.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ecb3_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ecb_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ede_cbcm_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/enc_read.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/enc_writ.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt_b.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64ede.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/ofb_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/pcbc_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/qud_cksm.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/rand_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/read2pwd.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/rpc_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/set_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/str2key.c", - "$OPENSSL_BUNDLE_DIR/crypto/des/xcbc_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_check.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_depr.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_gen.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_depr.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_gen.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ossl.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_vrf.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_beos.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dl.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dlfcn.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_openssl.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_vms.c", - "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_win32.c", - "$OPENSSL_BUNDLE_DIR/crypto/ebcdic.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_mult.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_oct.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_smpl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_check.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_curve.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_cvt.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_mult.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_oct.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/eck_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_mont.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_nist.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_oct.c", - "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_smpl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_ossl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_ossl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_vrf.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_all.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cnf.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cryptodev.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_ctrl.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_dyn.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_fat.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_init.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_list.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_openssl.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_table.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_asnmth.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_cipher.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dh.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_digest.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dsa.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdh.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdsa.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_pkmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rand.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rsa.c", - "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_store.c", - "$OPENSSL_BUNDLE_DIR/crypto/err/err.c", - "$OPENSSL_BUNDLE_DIR/crypto/err/err_all.c", - "$OPENSSL_BUNDLE_DIR/crypto/err/err_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_b64.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_md.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_ok.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/c_all.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/c_allc.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/c_alld.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/digest.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes_cbc_hmac_sha1.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_bf.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_camellia.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_cast.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des3.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_idea.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_old.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc2.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4_hmac_md5.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc5.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_seed.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/e_xcbc_d.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/encode.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_acnf.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pbe.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss1.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ecdsa.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md2.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md4.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md5.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_mdc2.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ripemd.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha1.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sigver.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/m_wp.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/names.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt2.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_dec.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_open.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_seal.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/p_verify.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_fn.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_gn.c", - "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ex_data.c", - "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/hmac/hmac.c", - "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cbc.c", - "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cfb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ofb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/idea/i_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/krb5/krb5_asn.c", - "$OPENSSL_BUNDLE_DIR/crypto/lhash/lh_stats.c", - "$OPENSSL_BUNDLE_DIR/crypto/lhash/lhash.c", - "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/mem.c", - "$OPENSSL_BUNDLE_DIR/crypto/mem_clr.c", - "$OPENSSL_BUNDLE_DIR/crypto/mem_dbg.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/cbc128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/ccm128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/cfb128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/ctr128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/cts128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/gcm128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/ofb128.c", - "$OPENSSL_BUNDLE_DIR/crypto/modes/xts128.c", - "$OPENSSL_BUNDLE_DIR/crypto/o_dir.c", - "$OPENSSL_BUNDLE_DIR/crypto/o_init.c", - "$OPENSSL_BUNDLE_DIR/crypto/o_str.c", - "$OPENSSL_BUNDLE_DIR/crypto/o_time.c", - "$OPENSSL_BUNDLE_DIR/crypto/objects/o_names.c", - "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_dat.c", - "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_xref.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_asn.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_cl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ext.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ht.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_srv.c", - "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_vfy.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_all.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_info.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_oth.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pk8.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pkey.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_seal.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_x509.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_xaux.c", - "$OPENSSL_BUNDLE_DIR/crypto/pem/pvkfmt.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_add.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_asn.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_attr.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crpt.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crt.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_decr.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_init.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_key.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_kiss.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_mutl.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_npas.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8d.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8e.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_utl.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/pk12err.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/bio_pk7.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_attr.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_doit.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_mime.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_smime.c", - "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pkcs7err.c", - "$OPENSSL_BUNDLE_DIR/crypto/pqueue/pqueue.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/md_rand.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_egd.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_nw.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_os2.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_unix.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_win.c", - "$OPENSSL_BUNDLE_DIR/crypto/rand/randfile.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_cbc.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2cfb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2ofb64.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_enc.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_utl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ameth.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_chk.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_crpt.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_depr.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_eay.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_gen.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_none.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_null.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_oaep.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pk1.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pmeth.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pss.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_saos.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ssl.c", - "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_x931.c", - "$OPENSSL_BUNDLE_DIR/crypto/seed/seed.c", - "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cbc.c", - "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cfb.c", - "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ecb.c", - "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ofb.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha256.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha512.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_one.c", - "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_vfy.c", - "$OPENSSL_BUNDLE_DIR/crypto/stack/stack.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_asn1.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_conf.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_utils.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_print.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_sign.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_utils.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_verify.c", - "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_verify_ctx.c", - "$OPENSSL_BUNDLE_DIR/crypto/txt_db/txt_db.c", - "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_compat.c", - "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_openssl.c", - "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_util.c", - "$OPENSSL_BUNDLE_DIR/crypto/uid.c", - "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_block.c", - "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_dgst.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/by_dir.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/by_file.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_att.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_cmp.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_d2.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_def.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_err.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_ext.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_lu.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_obj.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_r2x.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_req.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_set.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_trs.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_txt.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_v3.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vfy.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vpm.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509cset.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509name.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509rset.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509spki.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x509type.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509/x_all.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_cache.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_data.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_map.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_node.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_tree.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_addr.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akey.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akeya.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_alt.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_asid.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bcons.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bitst.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_conf.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_cpols.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_crld.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_enum.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_extku.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_genn.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ia5.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_info.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_int.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_lib.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ncons.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ocsp.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pci.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcia.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcons.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pku.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pmaps.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_prn.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_purp.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_skey.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_sxnet.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_utl.c", - "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3err.c", - "$OPENSSL_BUNDLE_DIR/ssl/bio_ssl.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_both.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_clnt.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_enc.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_meth.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_pkt.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_srtp.c", - "$OPENSSL_BUNDLE_DIR/ssl/d1_srvr.c", - "$OPENSSL_BUNDLE_DIR/ssl/kssl.c", - "$OPENSSL_BUNDLE_DIR/ssl/s23_clnt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s23_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/s23_meth.c", - "$OPENSSL_BUNDLE_DIR/ssl/s23_pkt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s23_srvr.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_clnt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_enc.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_meth.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_pkt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s2_srvr.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_both.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_cbc.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_clnt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_enc.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_meth.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_pkt.c", - "$OPENSSL_BUNDLE_DIR/ssl/s3_srvr.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_algs.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_asn1.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_cert.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_ciph.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_err.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_err2.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_rsa.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_sess.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_stat.c", - "$OPENSSL_BUNDLE_DIR/ssl/ssl_txt.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_clnt.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_enc.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_lib.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_meth.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_reneg.c", - "$OPENSSL_BUNDLE_DIR/ssl/t1_srvr.c", - "$OPENSSL_BUNDLE_DIR/ssl/tls_srp.c", - ]) - openssl_env.WriteVal("$OPENSSL_BUNDLE_DIR/crypto/buildinf.h", openssl_env.Value("#define CFLAGS \"\"\n#define PLATFORM \"-\"\n#define DATE \"-\"")) + # case-sensitive sorted list of OpenSSL objects for openssl-1.0.1j + env["OPENSSL_OBJECTS"] = openssl_env.SwiftenObject([ + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cbc.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cfb.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_core.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ctr.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ige.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_misc.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ofb.c", + "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_wrap.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bitstr.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bool.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bytes.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_d2i_fp.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_digest.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_dup.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_enum.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_gentm.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_i2d_fp.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_int.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_mbstr.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_object.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_octet.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_set.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strex.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strnid.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_time.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_type.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utctm.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utf8.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_verify.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/ameth_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_gen.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_par.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_mime.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_moid.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_pack.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_ndef.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pr.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pu.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/evp_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_enum.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_int.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_string.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pr.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pu.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/n_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/nsseq.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbe.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbev2.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/p8_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_bitst.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_crl.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_req.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_spki.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509a.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_dec.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_fre.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_new.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_typ.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_utl.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_algor.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_attrib.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_bignum.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_crl.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_exten.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_info.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_long.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_name.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_nx509.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pubkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_req.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_sig.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_spki.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_val.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509.c", + "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509a.c", + "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_cfb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ofb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/b_dump.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/b_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/b_sock.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_buff.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_nbio.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_cb.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_acpt.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_bio.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_conn.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_dgram.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_fd.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_file.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_log.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_mem.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_sock.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_add.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_asm.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_blind.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_const.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_ctx.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_depr.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_div.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp2.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gcd.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gf2m.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_kron.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mod.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mont.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mpi.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mul.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_nist.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_prime.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_rand.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_recp.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_shift.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqr.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqrt.c", + "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_word.c", + "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_str.c", + "$OPENSSL_BUNDLE_DIR/crypto/buffer/buffer.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/camellia.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cbc.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cfb.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ctr.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_misc.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ofb.c", + "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_utl.c", + "$OPENSSL_BUNDLE_DIR/crypto/cast/c_cfb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/cast/c_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ofb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/cast/c_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/cmac/cmac.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_att.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_cd.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_dd.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_env.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_ess.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_io.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_pwri.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_sd.c", + "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_smime.c", + "$OPENSSL_BUNDLE_DIR/crypto/comp/c_rle.c", + "$OPENSSL_BUNDLE_DIR/crypto/comp/c_zlib.c", + "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_api.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_def.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mall.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mod.c", + "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_sap.c", + "$OPENSSL_BUNDLE_DIR/crypto/cpt_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/cryptlib.c", + "$OPENSSL_BUNDLE_DIR/crypto/cversion.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_cksm.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64ede.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/cfb_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/des_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/des_old.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/des_old2.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ecb3_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ecb_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ede_cbcm_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/enc_read.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/enc_writ.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt_b.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64ede.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/ofb_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/pcbc_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/qud_cksm.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/rand_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/read2pwd.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/rpc_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/set_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/str2key.c", + "$OPENSSL_BUNDLE_DIR/crypto/des/xcbc_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_check.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_depr.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_gen.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_depr.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_gen.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ossl.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_vrf.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_beos.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dl.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dlfcn.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_openssl.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_vms.c", + "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_win32.c", + "$OPENSSL_BUNDLE_DIR/crypto/ebcdic.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_mult.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_oct.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_smpl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_check.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_curve.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_cvt.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_mult.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_oct.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/eck_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_mont.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_nist.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_oct.c", + "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_smpl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_ossl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_ossl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_vrf.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_all.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cnf.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cryptodev.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_ctrl.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_dyn.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_fat.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_init.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_list.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_openssl.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_table.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_asnmth.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_cipher.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dh.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_digest.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dsa.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdh.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdsa.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_pkmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rand.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rsa.c", + "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_store.c", + "$OPENSSL_BUNDLE_DIR/crypto/err/err.c", + "$OPENSSL_BUNDLE_DIR/crypto/err/err_all.c", + "$OPENSSL_BUNDLE_DIR/crypto/err/err_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_b64.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_md.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_ok.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/c_all.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/c_allc.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/c_alld.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/digest.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes_cbc_hmac_sha1.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_bf.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_camellia.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_cast.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des3.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_idea.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_old.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc2.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4_hmac_md5.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc5.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_seed.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/e_xcbc_d.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/encode.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_acnf.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pbe.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss1.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ecdsa.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md2.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md4.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md5.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_mdc2.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ripemd.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha1.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sigver.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/m_wp.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/names.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt2.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_dec.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_open.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_seal.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/p_verify.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_fn.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_gn.c", + "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ex_data.c", + "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/hmac/hmac.c", + "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cbc.c", + "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cfb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ofb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/idea/i_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/krb5/krb5_asn.c", + "$OPENSSL_BUNDLE_DIR/crypto/lhash/lh_stats.c", + "$OPENSSL_BUNDLE_DIR/crypto/lhash/lhash.c", + "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/mem.c", + "$OPENSSL_BUNDLE_DIR/crypto/mem_clr.c", + "$OPENSSL_BUNDLE_DIR/crypto/mem_dbg.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/cbc128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/ccm128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/cfb128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/ctr128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/cts128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/gcm128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/ofb128.c", + "$OPENSSL_BUNDLE_DIR/crypto/modes/xts128.c", + "$OPENSSL_BUNDLE_DIR/crypto/o_dir.c", + "$OPENSSL_BUNDLE_DIR/crypto/o_init.c", + "$OPENSSL_BUNDLE_DIR/crypto/o_str.c", + "$OPENSSL_BUNDLE_DIR/crypto/o_time.c", + "$OPENSSL_BUNDLE_DIR/crypto/objects/o_names.c", + "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_dat.c", + "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_xref.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_asn.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_cl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ext.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ht.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_srv.c", + "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_vfy.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_all.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_info.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_oth.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pk8.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pkey.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_seal.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_x509.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_xaux.c", + "$OPENSSL_BUNDLE_DIR/crypto/pem/pvkfmt.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_add.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_asn.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_attr.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crpt.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crt.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_decr.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_init.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_key.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_kiss.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_mutl.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_npas.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8d.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8e.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_utl.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/pk12err.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/bio_pk7.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_attr.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_doit.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_mime.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_smime.c", + "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pkcs7err.c", + "$OPENSSL_BUNDLE_DIR/crypto/pqueue/pqueue.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/md_rand.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_egd.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_nw.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_os2.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_unix.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_win.c", + "$OPENSSL_BUNDLE_DIR/crypto/rand/randfile.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_cbc.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2cfb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2ofb64.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_enc.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_utl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ameth.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_chk.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_crpt.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_depr.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_eay.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_gen.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_none.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_null.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_oaep.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pk1.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pmeth.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pss.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_saos.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ssl.c", + "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_x931.c", + "$OPENSSL_BUNDLE_DIR/crypto/seed/seed.c", + "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cbc.c", + "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cfb.c", + "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ecb.c", + "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ofb.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha256.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha512.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_one.c", + "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_vfy.c", + "$OPENSSL_BUNDLE_DIR/crypto/stack/stack.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_asn1.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_conf.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_utils.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_print.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_sign.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_utils.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_verify.c", + "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_verify_ctx.c", + "$OPENSSL_BUNDLE_DIR/crypto/txt_db/txt_db.c", + "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_compat.c", + "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_openssl.c", + "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_util.c", + "$OPENSSL_BUNDLE_DIR/crypto/uid.c", + "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_block.c", + "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_dgst.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/by_dir.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/by_file.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_att.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_cmp.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_d2.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_def.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_err.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_ext.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_lu.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_obj.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_r2x.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_req.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_set.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_trs.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_txt.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_v3.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vfy.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vpm.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509cset.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509name.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509rset.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509spki.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x509type.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509/x_all.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_cache.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_data.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_map.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_node.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_tree.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_addr.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akey.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akeya.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_alt.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_asid.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bcons.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bitst.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_conf.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_cpols.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_crld.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_enum.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_extku.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_genn.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ia5.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_info.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_int.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_lib.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ncons.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ocsp.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pci.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcia.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcons.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pku.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pmaps.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_prn.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_purp.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_skey.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_sxnet.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_utl.c", + "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3err.c", + "$OPENSSL_BUNDLE_DIR/ssl/bio_ssl.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_both.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_clnt.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_enc.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_meth.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_pkt.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_srtp.c", + "$OPENSSL_BUNDLE_DIR/ssl/d1_srvr.c", + "$OPENSSL_BUNDLE_DIR/ssl/kssl.c", + "$OPENSSL_BUNDLE_DIR/ssl/s23_clnt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s23_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/s23_meth.c", + "$OPENSSL_BUNDLE_DIR/ssl/s23_pkt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s23_srvr.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_clnt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_enc.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_meth.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_pkt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s2_srvr.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_both.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_cbc.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_clnt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_enc.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_meth.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_pkt.c", + "$OPENSSL_BUNDLE_DIR/ssl/s3_srvr.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_algs.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_asn1.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_cert.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_ciph.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_err.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_err2.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_rsa.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_sess.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_stat.c", + "$OPENSSL_BUNDLE_DIR/ssl/ssl_txt.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_clnt.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_enc.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_lib.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_meth.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_reneg.c", + "$OPENSSL_BUNDLE_DIR/ssl/t1_srvr.c", + "$OPENSSL_BUNDLE_DIR/ssl/tls_srp.c", + ]) + openssl_env.WriteVal("$OPENSSL_BUNDLE_DIR/crypto/buildinf.h", openssl_env.Value("#define CFLAGS \"\"\n#define PLATFORM \"-\"\n#define DATE \"-\"")) diff --git a/3rdParty/SQLite/SConscript b/3rdParty/SQLite/SConscript index ffa8946..1f4bcd7 100644 --- a/3rdParty/SQLite/SConscript +++ b/3rdParty/SQLite/SConscript @@ -6,14 +6,14 @@ if env.get("SQLITE_BUNDLED", False) : # Flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["SQLITE_FLAGS"] = { - "CPPPATH": [Dir(".")], - "LIBPATH": [Dir(".")], - } + if env["SCONS_STAGE"] == "flags" : + env["SQLITE_FLAGS"] = { + "CPPPATH": [Dir(".")], + "LIBPATH": [Dir(".")], + } - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - myenv.Append(CPPPATH = ["."]) - env["SQLITE_OBJECTS"] = myenv.SwiftenObject(["sqlite3.c"]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + myenv.Append(CPPPATH = ["."]) + env["SQLITE_OBJECTS"] = myenv.SwiftenObject(["sqlite3.c"]) diff --git a/3rdParty/Snarl/SConscript b/3rdParty/Snarl/SConscript index 8733390..a93282c 100644 --- a/3rdParty/Snarl/SConscript +++ b/3rdParty/Snarl/SConscript @@ -5,14 +5,14 @@ Import("env") ################################################################################ if env.get("HAVE_SNARL", False) : - if env["SCONS_STAGE"] == "flags" : - env["SNARL_FLAGS"] = { - "CPPPATH": [Dir(".")], - "LIBPATH": [Dir(".")], - "LIBS": ["Snarl"], - } + if env["SCONS_STAGE"] == "flags" : + env["SNARL_FLAGS"] = { + "CPPPATH": [Dir(".")], + "LIBPATH": [Dir(".")], + "LIBS": ["Snarl"], + } - elif env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - myenv.StaticLibrary("Snarl", ["SnarlInterface.cpp"], CPPPATH = ["."]) + elif env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) + myenv.StaticLibrary("Snarl", ["SnarlInterface.cpp"], CPPPATH = ["."]) diff --git a/3rdParty/Unbound/SConscript b/3rdParty/Unbound/SConscript index b0e6f42..fee2fa3 100644 --- a/3rdParty/Unbound/SConscript +++ b/3rdParty/Unbound/SConscript @@ -2,109 +2,109 @@ Import("env") if env.get("UNBOUND_BUNDLED", False) : - if env["PLATFORM"] == "win32" : - cppflags = ["/I" + Dir("#/3rdParty/Unbound/src/unbound").abspath] - else : - cppflags = [("-isystem", Dir("#/3rdParty/Unbound/src/unbound").abspath)] + if env["PLATFORM"] == "win32" : + cppflags = ["/I" + Dir("#/3rdParty/Unbound/src/unbound").abspath] + else : + cppflags = [("-isystem", Dir("#/3rdParty/Unbound/src/unbound").abspath)] ################################################################################ # Flags ################################################################################ - - if env["SCONS_STAGE"] == "flags" : - env["UNBOUND_FLAGS"] = { - "CPPPATH": [Dir("src/unbound/libunbound")], - "CPPFLAGS": cppflags, - "LIBPATH": [env.Dir(".")], - "LIBS": ["Swiften_Unbound"], - } - if env["target"] == "android" : - env["UNBOUND_FLAGS"]["CPPPATH"].append(Dir("src/android/compat")) + + if env["SCONS_STAGE"] == "flags" : + env["UNBOUND_FLAGS"] = { + "CPPPATH": [Dir("src/unbound/libunbound")], + "CPPFLAGS": cppflags, + "LIBPATH": [env.Dir(".")], + "LIBS": ["Swiften_Unbound"], + } + if env["target"] == "android" : + env["UNBOUND_FLAGS"]["CPPPATH"].append(Dir("src/android/compat")) ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.Append(CPPDEFINES = [("UNBOUND_STATICLIB")]) - myenv.Append(CPPPATH = ["../Ldns/src/ldns", "src/unbound", "."]) - if env["target"] == "android" : - myenv.Append(CPPPATH = ["src/android/compat", "src/android/config"]) - myenv.Append(CPPPATH = ["src/android/dns"]) - myenv.Append(CPPPATH = ["../Ldns/src/android"]) - myenv.UseFlags(env["OPENSSL_FLAGS"]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.Append(CPPDEFINES = [("UNBOUND_STATICLIB")]) + myenv.Append(CPPPATH = ["../Ldns/src/ldns", "src/unbound", "."]) + if env["target"] == "android" : + myenv.Append(CPPPATH = ["src/android/compat", "src/android/config"]) + myenv.Append(CPPPATH = ["src/android/dns"]) + myenv.Append(CPPPATH = ["../Ldns/src/android"]) + myenv.UseFlags(env["OPENSSL_FLAGS"]) - unbound_objects = [ - "src/unbound/daemon/acl_list.c", - "src/unbound/daemon/cachedump.c", - "src/unbound/daemon/daemon.c", - "src/unbound/daemon/remote.c", - "src/unbound/daemon/stats.c", - "src/unbound/daemon/unbound.c", - # duplicate symbols: "src/src/daemon/worker.c", - "src/unbound/iterator/iter_delegpt.c", - "src/unbound/iterator/iter_donotq.c", - "src/unbound/iterator/iter_fwd.c", - "src/unbound/iterator/iter_hints.c", - "src/unbound/iterator/iter_priv.c", - "src/unbound/iterator/iter_resptype.c", - "src/unbound/iterator/iter_scrub.c", - "src/unbound/iterator/iter_utils.c", - "src/unbound/iterator/iterator.c", - "src/unbound/libunbound/context.c", - "src/unbound/libunbound/libunbound.c", - "src/unbound/libunbound/libworker.c", - "src/unbound/services/cache/dns.c", - "src/unbound/services/cache/infra.c", - "src/unbound/services/cache/rrset.c", - "src/unbound/services/listen_dnsport.c", - "src/unbound/services/localzone.c", - "src/unbound/services/mesh.c", - "src/unbound/services/modstack.c", - "src/unbound/services/outbound_list.c", - "src/unbound/services/outside_network.c", - "src/unbound/util/alloc.c", - "src/unbound/util/config_file.c", - "src/unbound/util/configlexer.c", - "src/unbound/util/configparser.c", - "src/unbound/util/data/dname.c", - "src/unbound/util/data/msgencode.c", - "src/unbound/util/data/msgparse.c", - "src/unbound/util/data/msgreply.c", - "src/unbound/util/data/packed_rrset.c", - "src/unbound/util/fptr_wlist.c", - "src/unbound/util/locks.c", - "src/unbound/util/log.c", - "src/unbound/util/mini_event.c", - "src/unbound/util/module.c", - "src/unbound/util/net_help.c", - "src/unbound/util/netevent.c", - "src/unbound/util/random.c", - "src/unbound/util/rbtree.c", - "src/unbound/util/regional.c", - "src/unbound/util/rtt.c", - "src/unbound/util/storage/dnstree.c", - "src/unbound/util/storage/lookup3.c", - "src/unbound/util/storage/lruhash.c", - "src/unbound/util/storage/slabhash.c", - "src/unbound/util/timehist.c", - "src/unbound/util/tube.c", - #src/unbound/util/winsock_event.c - "src/unbound/validator/autotrust.c", - "src/unbound/validator/val_anchor.c", - "src/unbound/validator/val_kcache.c", - "src/unbound/validator/val_kentry.c", - "src/unbound/validator/val_neg.c", - "src/unbound/validator/val_nsec.c", - "src/unbound/validator/val_nsec3.c", - "src/unbound/validator/val_secalgo.c", - "src/unbound/validator/val_sigcrypt.c", - "src/unbound/validator/val_utils.c", - "src/unbound/validator/validator.c", - ] - if env["target"] == "android" : - unbound_objects.append("src/android/compat/glob.c") - unbound_objects.append("src/android/dns/dns_android.cpp") - env["UNBOUND_OBJECTS"] = myenv.SwiftenObject(unbound_objects) + unbound_objects = [ + "src/unbound/daemon/acl_list.c", + "src/unbound/daemon/cachedump.c", + "src/unbound/daemon/daemon.c", + "src/unbound/daemon/remote.c", + "src/unbound/daemon/stats.c", + "src/unbound/daemon/unbound.c", + # duplicate symbols: "src/src/daemon/worker.c", + "src/unbound/iterator/iter_delegpt.c", + "src/unbound/iterator/iter_donotq.c", + "src/unbound/iterator/iter_fwd.c", + "src/unbound/iterator/iter_hints.c", + "src/unbound/iterator/iter_priv.c", + "src/unbound/iterator/iter_resptype.c", + "src/unbound/iterator/iter_scrub.c", + "src/unbound/iterator/iter_utils.c", + "src/unbound/iterator/iterator.c", + "src/unbound/libunbound/context.c", + "src/unbound/libunbound/libunbound.c", + "src/unbound/libunbound/libworker.c", + "src/unbound/services/cache/dns.c", + "src/unbound/services/cache/infra.c", + "src/unbound/services/cache/rrset.c", + "src/unbound/services/listen_dnsport.c", + "src/unbound/services/localzone.c", + "src/unbound/services/mesh.c", + "src/unbound/services/modstack.c", + "src/unbound/services/outbound_list.c", + "src/unbound/services/outside_network.c", + "src/unbound/util/alloc.c", + "src/unbound/util/config_file.c", + "src/unbound/util/configlexer.c", + "src/unbound/util/configparser.c", + "src/unbound/util/data/dname.c", + "src/unbound/util/data/msgencode.c", + "src/unbound/util/data/msgparse.c", + "src/unbound/util/data/msgreply.c", + "src/unbound/util/data/packed_rrset.c", + "src/unbound/util/fptr_wlist.c", + "src/unbound/util/locks.c", + "src/unbound/util/log.c", + "src/unbound/util/mini_event.c", + "src/unbound/util/module.c", + "src/unbound/util/net_help.c", + "src/unbound/util/netevent.c", + "src/unbound/util/random.c", + "src/unbound/util/rbtree.c", + "src/unbound/util/regional.c", + "src/unbound/util/rtt.c", + "src/unbound/util/storage/dnstree.c", + "src/unbound/util/storage/lookup3.c", + "src/unbound/util/storage/lruhash.c", + "src/unbound/util/storage/slabhash.c", + "src/unbound/util/timehist.c", + "src/unbound/util/tube.c", + #src/unbound/util/winsock_event.c + "src/unbound/validator/autotrust.c", + "src/unbound/validator/val_anchor.c", + "src/unbound/validator/val_kcache.c", + "src/unbound/validator/val_kentry.c", + "src/unbound/validator/val_neg.c", + "src/unbound/validator/val_nsec.c", + "src/unbound/validator/val_nsec3.c", + "src/unbound/validator/val_secalgo.c", + "src/unbound/validator/val_sigcrypt.c", + "src/unbound/validator/val_utils.c", + "src/unbound/validator/validator.c", + ] + if env["target"] == "android" : + unbound_objects.append("src/android/compat/glob.c") + unbound_objects.append("src/android/dns/dns_android.cpp") + env["UNBOUND_OBJECTS"] = myenv.SwiftenObject(unbound_objects) diff --git a/3rdParty/ZLib/SConscript b/3rdParty/ZLib/SConscript index 3625ee6..f6f96ec 100644 --- a/3rdParty/ZLib/SConscript +++ b/3rdParty/ZLib/SConscript @@ -1,24 +1,24 @@ Import("env") if env.get("ZLIB_BUNDLED", False) : - if env["SCONS_STAGE"] == "flags" : - env["ZLIB_FLAGS"] = { - "CPPPATH": [Dir("src")], - "LIBPATH": [Dir(".")], - } + if env["SCONS_STAGE"] == "flags" : + env["ZLIB_FLAGS"] = { + "CPPPATH": [Dir("src")], + "LIBPATH": [Dir(".")], + } - if env["SCONS_STAGE"] == "build" : - env["ZLIB_OBJECTS"] = env.SwiftenObject([ - "src/adler32.c", - "src/compress.c", - "src/crc32.c", - "src/deflate.c", - "src/gzio.c", - "src/infback.c", - "src/inffast.c", - "src/inflate.c", - "src/inftrees.c", - "src/trees.c", - "src/uncompr.c", - "src/zutil.c" - ]) + if env["SCONS_STAGE"] == "build" : + env["ZLIB_OBJECTS"] = env.SwiftenObject([ + "src/adler32.c", + "src/compress.c", + "src/crc32.c", + "src/deflate.c", + "src/gzio.c", + "src/infback.c", + "src/inffast.c", + "src/inflate.c", + "src/inftrees.c", + "src/trees.c", + "src/uncompr.c", + "src/zutil.c" + ]) diff --git a/BuildTools/CheckHeaders.py b/BuildTools/CheckHeaders.py index 8d20f4e..79ff85c 100755 --- a/BuildTools/CheckHeaders.py +++ b/BuildTools/CheckHeaders.py @@ -3,18 +3,18 @@ import os, sys FORBIDDEN_INCLUDES = [ - ("iostream", ["Swiften/Base/format.h"]), - ("Base/Log.h", []), - ("Base/format.h", []), - ("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h", "Swiften/Base/Concat.h"]), - ("boost/bind.hpp", ["Swiften/Base/Listenable.h", "Swiften/FileTransfer/S5BTransportSession.h"]), - ("boost/filesystem.hpp", []), - ("Base/foreach.h", []), - ("boost/date_time/date_time.hpp", []), - ("boost/filesystem/filesystem.hpp", []), - - # To avoid - ("Base/Algorithm.h", ["Swiften/StringCodecs/HMAC.h"]), + ("iostream", ["Swiften/Base/format.h"]), + ("Base/Log.h", []), + ("Base/format.h", []), + ("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h", "Swiften/Base/Concat.h"]), + ("boost/bind.hpp", ["Swiften/Base/Listenable.h", "Swiften/FileTransfer/S5BTransportSession.h"]), + ("boost/filesystem.hpp", []), + ("Base/foreach.h", []), + ("boost/date_time/date_time.hpp", []), + ("boost/filesystem/filesystem.hpp", []), + + # To avoid + ("Base/Algorithm.h", ["Swiften/StringCodecs/HMAC.h"]), ] foundBadHeaders = False @@ -22,21 +22,21 @@ foundBadHeaders = False filename = sys.argv[1] if "3rdParty" in filename or ".sconf" in filename or ".framework" in filename or not filename.endswith(".h") : - sys.exit(0) + sys.exit(0) if not "Swiften" in filename : - sys.exit(0) + sys.exit(0) if filename.endswith("Swiften.h") : - sys.exit(0) + sys.exit(0) file = open(filename, "r") for line in file.readlines() : - if not "#include" in line : - continue - if "Base/Log.h" in filename : - continue - for forbiddenInclude, ignores in FORBIDDEN_INCLUDES : - if forbiddenInclude in line and len([x for x in ignores if x in filename]) == 0 : - print "Found " + forbiddenInclude + " include in " + filename - foundBadHeaders = True + if not "#include" in line : + continue + if "Base/Log.h" in filename : + continue + for forbiddenInclude, ignores in FORBIDDEN_INCLUDES : + if forbiddenInclude in line and len([x for x in ignores if x in filename]) == 0 : + print "Found " + forbiddenInclude + " include in " + filename + foundBadHeaders = True sys.exit(foundBadHeaders) diff --git a/BuildTools/CheckTests.py b/BuildTools/CheckTests.py index 0ea56bd..7f160e7 100755 --- a/BuildTools/CheckTests.py +++ b/BuildTools/CheckTests.py @@ -5,29 +5,29 @@ import os, sys, re foundUnregisteredTests = False for (path, dirs, files) in os.walk(".") : - if not "3rdParty" in path : - for filename in [os.path.join(path, file) for file in files if file.endswith("Test.cpp") and file != "IdleQuerierTest.cpp" and file != "NotifierTest.cpp" and file != "ClientTest.cpp" and file != "ConnectivityTest.cpp" and file != "ReconnectTest.cpp"] : - file = open(filename, "r") - isRegistered = False - registeredTests = set() - declaredTests = set() - for line in file.readlines() : - m = re.match("\s*CPPUNIT_TEST_SUITE_REGISTRATION\((.*)\)", line) - if m : - isRegistered = True - m = re.match("\s*CPPUNIT_TEST\((.*)\)", line) - if m : - registeredTests.add(m.group(1)) - continue - m = re.match("\s*void (test.*)\(\)", line) - if m : - declaredTests.add(m.group(1)) - if not isRegistered : - print filename + ": Registration missing" - foundUnregisteredTests = True - if registeredTests - declaredTests != set([]) : - print filename + ": " + str(registeredTests - declaredTests) - foundUnregisteredTests = True - file.close() + if not "3rdParty" in path : + for filename in [os.path.join(path, file) for file in files if file.endswith("Test.cpp") and file != "IdleQuerierTest.cpp" and file != "NotifierTest.cpp" and file != "ClientTest.cpp" and file != "ConnectivityTest.cpp" and file != "ReconnectTest.cpp"] : + file = open(filename, "r") + isRegistered = False + registeredTests = set() + declaredTests = set() + for line in file.readlines() : + m = re.match("\s*CPPUNIT_TEST_SUITE_REGISTRATION\((.*)\)", line) + if m : + isRegistered = True + m = re.match("\s*CPPUNIT_TEST\((.*)\)", line) + if m : + registeredTests.add(m.group(1)) + continue + m = re.match("\s*void (test.*)\(\)", line) + if m : + declaredTests.add(m.group(1)) + if not isRegistered : + print filename + ": Registration missing" + foundUnregisteredTests = True + if registeredTests - declaredTests != set([]) : + print filename + ": " + str(registeredTests - declaredTests) + foundUnregisteredTests = True + file.close() sys.exit(foundUnregisteredTests) diff --git a/BuildTools/CheckTranslations.py b/BuildTools/CheckTranslations.py index a9b6afd..615f81f 100755 --- a/BuildTools/CheckTranslations.py +++ b/BuildTools/CheckTranslations.py @@ -3,48 +3,48 @@ import os, sys, re, xml.dom.minidom def getText(nodelist): - text = "" - for node in nodelist: - if node.nodeType == node.TEXT_NODE: - text += node.data - return text + text = "" + for node in nodelist: + if node.nodeType == node.TEXT_NODE: + text += node.data + return text desktop_generic_names = set() desktop_comments = set() f = open("Swift/resources/swift.desktop", "r") for l in f.readlines() : - m = re.match("GenericName\[(\w+)\].*", l) - if m : - desktop_generic_names.add(m.group(1)) - m = re.match("Comment\[(\w+)\].*", l) - if m : - desktop_comments.add(m.group(1)) + m = re.match("GenericName\[(\w+)\].*", l) + if m : + desktop_generic_names.add(m.group(1)) + m = re.match("Comment\[(\w+)\].*", l) + if m : + desktop_comments.add(m.group(1)) f.close() for filename in os.listdir("Swift/Translations") : - m = re.match("swift_(.*)\.ts", filename) - if m : - language = m.group(1) - finished = True - f = open("Swift/Translations/" + filename, "r") - document = xml.dom.minidom.parse(f) - f.close() + m = re.match("swift_(.*)\.ts", filename) + if m : + language = m.group(1) + finished = True + f = open("Swift/Translations/" + filename, "r") + document = xml.dom.minidom.parse(f) + f.close() - for message in document.getElementsByTagName("message") : - source = message.getElementsByTagName("source")[0] - sourceText = getText(source.childNodes) - sourcePlaceholders = set(re.findall("%\d+%?", sourceText)) - translation = message.getElementsByTagName("translation")[0] - if "type" in translation.attributes.keys() and translation.attributes["type"]. value == "unfinished" : - finished = False - translationText = getText(translation.childNodes) - translationPlaceholders = set(re.findall("%\d+%?", translationText)) - if translationPlaceholders != sourcePlaceholders : - print "[Error] " + filename + ": Placeholder mismatch in translation '" + sourceText + "'" - if not finished : - print "[Warning] " + filename + ": Unfinished" - if language not in desktop_generic_names and language != "en" : - print "[Warning] GenericName field missing in desktop entry for " + language - if language not in desktop_comments and language != "en" : - print "[Warning] Comment field missing in desktop entry for " + language + for message in document.getElementsByTagName("message") : + source = message.getElementsByTagName("source")[0] + sourceText = getText(source.childNodes) + sourcePlaceholders = set(re.findall("%\d+%?", sourceText)) + translation = message.getElementsByTagName("translation")[0] + if "type" in translation.attributes.keys() and translation.attributes["type"]. value == "unfinished" : + finished = False + translationText = getText(translation.childNodes) + translationPlaceholders = set(re.findall("%\d+%?", translationText)) + if translationPlaceholders != sourcePlaceholders : + print "[Error] " + filename + ": Placeholder mismatch in translation '" + sourceText + "'" + if not finished : + print "[Warning] " + filename + ": Unfinished" + if language not in desktop_generic_names and language != "en" : + print "[Warning] GenericName field missing in desktop entry for " + language + if language not in desktop_comments and language != "en" : + print "[Warning] Comment field missing in desktop entry for " + language diff --git a/BuildTools/Copyright/find-contribs.py b/BuildTools/Copyright/find-contribs.py index 63c454e..ac30afb 100755 --- a/BuildTools/Copyright/find-contribs.py +++ b/BuildTools/Copyright/find-contribs.py @@ -3,46 +3,46 @@ import subprocess def print_log(full_log): - full_log_lines = full_log.split("\n") - - commits = [] - - commit_bit = "commit " - author_bit = "Author: " - date_bit = "Date: " - - commit = None - for line in full_log_lines: - - if line[0:len(commit_bit)] == commit_bit: - if commit: - commits.append(commit) - commit = {'text':''} - handled = False - for bit in [commit_bit, author_bit, date_bit]: - if line[0:len(bit)] == bit: - commit[bit] = line - handled = True - if not handled: - commit['text'] += line - - commits.append(commit) - - contributions = [] - - for commit in commits: - if not "git@kismith.co.uk" in commit[author_bit] and not "git@el-tramo.be" in commit[author_bit]: - contributions.append(commit) - - #print contributions - contributors = {} - for commit in contributions: - if not commit[author_bit] in contributors: - contributors[commit[author_bit]] = [] - contributors[commit[author_bit]].append(commit[commit_bit]) - - for contributor in contributors: - print contributor + " has contributed patches " + ", ".join([commit[len(commit_bit):] for commit in contributors[contributor]]) + full_log_lines = full_log.split("\n") + + commits = [] + + commit_bit = "commit " + author_bit = "Author: " + date_bit = "Date: " + + commit = None + for line in full_log_lines: + + if line[0:len(commit_bit)] == commit_bit: + if commit: + commits.append(commit) + commit = {'text':''} + handled = False + for bit in [commit_bit, author_bit, date_bit]: + if line[0:len(bit)] == bit: + commit[bit] = line + handled = True + if not handled: + commit['text'] += line + + commits.append(commit) + + contributions = [] + + for commit in commits: + if not "git@kismith.co.uk" in commit[author_bit] and not "git@el-tramo.be" in commit[author_bit]: + contributions.append(commit) + + #print contributions + contributors = {} + for commit in contributions: + if not commit[author_bit] in contributors: + contributors[commit[author_bit]] = [] + contributors[commit[author_bit]].append(commit[commit_bit]) + + for contributor in contributors: + print contributor + " has contributed patches " + ", ".join([commit[len(commit_bit):] for commit in contributors[contributor]]) full_swiften_log = subprocess.check_output(["git", "log", "--", "Swiften"]) diff --git a/BuildTools/Copyrighter.py b/BuildTools/Copyrighter.py index a3b6379..a16050c 100755 --- a/BuildTools/Copyrighter.py +++ b/BuildTools/Copyrighter.py @@ -11,32 +11,32 @@ LICENSE_DIR = "Documentation/Licenses" reParseLicenseCommentBlocks = re.compile(ur'(\/\*\n\s\*\sCopyright \(c\) (?P<startYear>\d\d\d\d)(-(?P<endYear>\d\d\d\d))? (?P<author>[^\n\.]*)\.?\n.\* (?P<license>[^\n]*)\n \* (?P<seeMore>[^\n]+)\n *\*\/)') class License : - def __init__(self, name, file) : - self.name = name - self.file = file + def __init__(self, name, file) : + self.name = name + self.file = file licenses = { - "default": License("All rights reserved.", "See the COPYING file for more information."), - "gpl3" : License("Licensed under the GNU General Public License v3.", "See " + LICENSE_DIR + "/" + "GPLv3.txt" + " for more information."), - "mit" : License("Licensed under the MIT License.", "See " + LICENSE_DIR + "/" + "MIT.txt" + " for more information."), - } + "default": License("All rights reserved.", "See the COPYING file for more information."), + "gpl3" : License("Licensed under the GNU General Public License v3.", "See " + LICENSE_DIR + "/" + "GPLv3.txt" + " for more information."), + "mit" : License("Licensed under the MIT License.", "See " + LICENSE_DIR + "/" + "MIT.txt" + " for more information."), + } class Copyright : - def __init__(self, author, year, license) : - self.author = author - self.year = year - self.license = license - - def to_string(self, comment_chars) : - return "\n".join([ - comment_chars[0], - comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author }, - comment_chars[1] + licenses[self.license].name, - comment_chars[1] + licenses[self.license].file, - comment_chars[2], - "\n"]) - def __str__(self): - return """/* + def __init__(self, author, year, license) : + self.author = author + self.year = year + self.license = license + + def to_string(self, comment_chars) : + return "\n".join([ + comment_chars[0], + comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author }, + comment_chars[1] + licenses[self.license].name, + comment_chars[1] + licenses[self.license].file, + comment_chars[2], + "\n"]) + def __str__(self): + return """/* * Copyright (c) %s %s. * %s * %s @@ -44,145 +44,145 @@ class Copyright : """ % (self.year, self.author, licenses[self.license].name, licenses[self.license].file) class ContentRef : - def __init__(self, begin, end, content): - self.begin = begin - self.end = end - self.content = content + def __init__(self, begin, end, content): + self.begin = begin + self.end = end + self.content = content class CopyrightBlock : - def __init__(self, yearBegin, yearEnd, author, license, seeMore, total): - self.yearBegin = yearBegin - self.yearEnd = yearEnd - self.author = author - self.license = license - self.seeMore = seeMore - self.total = total + def __init__(self, yearBegin, yearEnd, author, license, seeMore, total): + self.yearBegin = yearBegin + self.yearEnd = yearEnd + self.author = author + self.license = license + self.seeMore = seeMore + self.total = total def cref_from_group(match, group): - if match.group(group): - return ContentRef(match.start(group), match.end(group), match.group(group)) - else : - return None + if match.group(group): + return ContentRef(match.start(group), match.end(group), match.group(group)) + else : + return None def parse_file_new(filename): - copyrightBlocks = [] - with open(filename, 'r') as file: - content = file.read() - for match in re.finditer(reParseLicenseCommentBlocks, content): - copyrightBlocks.append(CopyrightBlock( - cref_from_group(match, "startYear"), - cref_from_group(match, "endYear"), - cref_from_group(match, "author"), - cref_from_group(match, "license"), - cref_from_group(match, "seeMore"), - cref_from_group(match, 0))) - return copyrightBlocks + copyrightBlocks = [] + with open(filename, 'r') as file: + content = file.read() + for match in re.finditer(reParseLicenseCommentBlocks, content): + copyrightBlocks.append(CopyrightBlock( + cref_from_group(match, "startYear"), + cref_from_group(match, "endYear"), + cref_from_group(match, "author"), + cref_from_group(match, "license"), + cref_from_group(match, "seeMore"), + cref_from_group(match, 0))) + return copyrightBlocks def get_userinfo() : - p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) - username = p.stdout.read().rstrip() - p.stdin.close() - if p.wait() != 0 : - return None - p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) - email = p.stdout.read().rstrip() - p.stdin.close() - if p.wait() != 0 : - return None - return (username, email) + p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) + username = p.stdout.read().rstrip() + p.stdin.close() + if p.wait() != 0 : + return None + p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) + email = p.stdout.read().rstrip() + p.stdin.close() + if p.wait() != 0 : + return None + return (username, email) def get_copyright(username, email) : - if email in ["git@el-tramo.be", "git@kismith.co.uk"] : - license = DEFAULT_LICENSE - else : - license = CONTRIBUTOR_LICENSE - return Copyright(username, datetime.date.today().strftime("%Y"), license) + if email in ["git@el-tramo.be", "git@kismith.co.uk"] : + license = DEFAULT_LICENSE + else : + license = CONTRIBUTOR_LICENSE + return Copyright(username, datetime.date.today().strftime("%Y"), license) def get_copyright_setting(username, email) : - config = os.getenv("SWIFT_LICENSE_CONFIG") - if config : - copyrightHolder, license = config.split("|") - else : - if email.endswith("isode.com") or email in ["git@el-tramo.be", "git@kismith.co.uk", "tm@ayena.de"] : - copyrightHolder, license = "Isode Limited", "default" - else : - copyrightHolder, license = username, "mit" - return Copyright(copyrightHolder, datetime.date.today().year, license) + config = os.getenv("SWIFT_LICENSE_CONFIG") + if config : + copyrightHolder, license = config.split("|") + else : + if email.endswith("isode.com") or email in ["git@el-tramo.be", "git@kismith.co.uk", "tm@ayena.de"] : + copyrightHolder, license = "Isode Limited", "default" + else : + copyrightHolder, license = username, "mit" + return Copyright(copyrightHolder, datetime.date.today().year, license) def check_copyright(filename, hints) : - copyrightBlocks = parse_file_new(filename) - if copyrightBlocks : - # looking for copyright block for current author - username, email = get_userinfo() - copyrightSetting = get_copyright_setting(username, email) - for block in copyrightBlocks : - if block.author.content == copyrightSetting.author: - year = block.yearBegin.content if not block.yearEnd else block.yearEnd.content - if int(year) == copyrightSetting.year: - return True - else : - if hints : - print "Copyright block for " + copyrightSetting.author + " does not cover current year in: " + filename - return False - if hints : - print "Missing copyright block for " + copyrightSetting.author + " in: " + filename - return False - else : - if hints : - print "No copyright found in: " + filename - return False + copyrightBlocks = parse_file_new(filename) + if copyrightBlocks : + # looking for copyright block for current author + username, email = get_userinfo() + copyrightSetting = get_copyright_setting(username, email) + for block in copyrightBlocks : + if block.author.content == copyrightSetting.author: + year = block.yearBegin.content if not block.yearEnd else block.yearEnd.content + if int(year) == copyrightSetting.year: + return True + else : + if hints : + print "Copyright block for " + copyrightSetting.author + " does not cover current year in: " + filename + return False + if hints : + print "Missing copyright block for " + copyrightSetting.author + " in: " + filename + return False + else : + if hints : + print "No copyright found in: " + filename + return False def replace_data_in_file(filename, begin, end, replaceWith) : - with open(filename, 'r') as file: - content = file.read() - with open(filename, 'w') as file: - file.write(content[:begin] + replaceWith + content[end:]) + with open(filename, 'r') as file: + content = file.read() + with open(filename, 'w') as file: + file.write(content[:begin] + replaceWith + content[end:]) def set_or_update_copyright(filename) : - if check_copyright(filename, False) : - print "No update required for file: " + filename - else : - copyrightBlocks = parse_file_new(filename) - username, email = get_userinfo() - copyrightSetting = get_copyright_setting(username, email) - lastBlock = 0 - for block in copyrightBlocks : - if block.author.content == copyrightSetting.author : - if not block.yearEnd : - # replace year with range - replace_data_in_file(filename, block.yearBegin.begin, block.yearBegin.end, "%s-%s" % (block.yearBegin.content, str(copyrightSetting.year))) - else : - # replace end of range with current year - replace_data_in_file(filename, block.yearEnd.begin, block.yearEnd.end, "%s" % str(copyrightSetting.year)) - return - lastBlock = block.total.end - - # No copyright block found. Append a new one. - replace_data_in_file(filename, lastBlock+1, lastBlock+1, "\n" + str(copyrightSetting)) + if check_copyright(filename, False) : + print "No update required for file: " + filename + else : + copyrightBlocks = parse_file_new(filename) + username, email = get_userinfo() + copyrightSetting = get_copyright_setting(username, email) + lastBlock = 0 + for block in copyrightBlocks : + if block.author.content == copyrightSetting.author : + if not block.yearEnd : + # replace year with range + replace_data_in_file(filename, block.yearBegin.begin, block.yearBegin.end, "%s-%s" % (block.yearBegin.content, str(copyrightSetting.year))) + else : + # replace end of range with current year + replace_data_in_file(filename, block.yearEnd.begin, block.yearEnd.end, "%s" % str(copyrightSetting.year)) + return + lastBlock = block.total.end + + # No copyright block found. Append a new one. + replace_data_in_file(filename, lastBlock+1, lastBlock+1, "\n" + str(copyrightSetting)) def print_help() : - print """Usage: - Copyrighter.py check-copyright $filename - Cheks for the existence of a copyright comment block. + print """Usage: + Copyrighter.py check-copyright $filename + Cheks for the existence of a copyright comment block. - Copyrighter.py set-copyright $filename - Adds or updates the existing copyright comment block. + Copyrighter.py set-copyright $filename + Adds or updates the existing copyright comment block. - License setting: - A users license configuration can be set via the SWIFT_LICENSE_CONFIG environment variable - in the format "$copyright holder|$license", e.g. "Jane Doe|mit". Possible values for - $license are default, mit and gpl. - """ + License setting: + A users license configuration can be set via the SWIFT_LICENSE_CONFIG environment variable + in the format "$copyright holder|$license", e.g. "Jane Doe|mit". Possible values for + $license are default, mit and gpl. + """ if sys.argv[1] == "check-copyright" : - file = sys.argv[2] - if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file : - if not check_copyright(file, True) : - sys.exit(-1) + file = sys.argv[2] + if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file : + if not check_copyright(file, True) : + sys.exit(-1) elif sys.argv[1] == "set-copyright" : - file = sys.argv[2] - set_or_update_copyright(file) + file = sys.argv[2] + set_or_update_copyright(file) else : - print "Unknown command: " + sys.argv[1] - print_help() - sys.exit(-1) + print "Unknown command: " + sys.argv[1] + print_help() + sys.exit(-1) diff --git a/BuildTools/Coverage/FilterLCovData.py b/BuildTools/Coverage/FilterLCovData.py index 33fd682..e0f5c92 100755 --- a/BuildTools/Coverage/FilterLCovData.py +++ b/BuildTools/Coverage/FilterLCovData.py @@ -7,23 +7,23 @@ import sys, re, os.path assert(len(sys.argv) == 2) def isIgnored(file) : - return (file.find("/Swiften/") == -1 and file.find("/Slimber/") == -1 and file.find("/Swift/") == -1) or (file.find("/UnitTest/") != -1 or file.find("/QA/") != -1) + return (file.find("/Swiften/") == -1 and file.find("/Slimber/") == -1 and file.find("/Swift/") == -1) or (file.find("/UnitTest/") != -1 or file.find("/QA/") != -1) output = [] inputFile = open(sys.argv[1]) inIgnoredFile = False for line in inputFile.readlines() : - if inIgnoredFile : - if line == "end_of_record\n" : - inIgnoredFile = False - else : - if line.startswith("SF:") and isIgnored(line) : - inIgnoredFile = True - else : - m = re.match("SF:(.*)", line) - if m : - line = "SF:" + os.path.realpath(m.group(1)) + "\n" - output.append(line) + if inIgnoredFile : + if line == "end_of_record\n" : + inIgnoredFile = False + else : + if line.startswith("SF:") and isIgnored(line) : + inIgnoredFile = True + else : + m = re.match("SF:(.*)", line) + if m : + line = "SF:" + os.path.realpath(m.group(1)) + "\n" + output.append(line) inputFile.close() outputFile = open(sys.argv[1], 'w') diff --git a/BuildTools/Coverage/GenerateSummary.py b/BuildTools/Coverage/GenerateSummary.py index e572082..9de0f4d 100755 --- a/BuildTools/Coverage/GenerateSummary.py +++ b/BuildTools/Coverage/GenerateSummary.py @@ -8,27 +8,27 @@ inputFile = open(sys.argv[1]) currentFile = "" coverage = {} for line in inputFile.readlines() : - line = line.strip() - m = re.match("^SF:(.*)", line) - if m : - currentFile = m.group(1) - else : - m = re.match("^DA:(\d+),(\d+)", line) - if m : - currentFileCoverage = coverage.get(currentFile, {}) - line = int(m.group(1)) - count = int(m.group(2)) - currentFileCoverage[line] = currentFileCoverage.get(line, 0) + count - coverage[currentFile] = currentFileCoverage + line = line.strip() + m = re.match("^SF:(.*)", line) + if m : + currentFile = m.group(1) + else : + m = re.match("^DA:(\d+),(\d+)", line) + if m : + currentFileCoverage = coverage.get(currentFile, {}) + line = int(m.group(1)) + count = int(m.group(2)) + currentFileCoverage[line] = currentFileCoverage.get(line, 0) + count + coverage[currentFile] = currentFileCoverage inputFile.close() totalLines = 0 coveredLines = 0 for c in coverage.values() : - totalLines += len(c) - for l in c.values() : - if l > 0 : - coveredLines += 1 + totalLines += len(c) + for l in c.values() : + if l > 0 : + coveredLines += 1 outputFile = open(sys.argv[2], 'w') outputFile.write(str(coveredLines) + "/" + str(totalLines)) diff --git a/BuildTools/Cppcheck.sh b/BuildTools/Cppcheck.sh index 9f14cb2..ee52b9b 100755 --- a/BuildTools/Cppcheck.sh +++ b/BuildTools/Cppcheck.sh @@ -1,21 +1,21 @@ #!/bin/sh cppcheck $@ \ - --enable=all \ - --inline-suppr \ - --suppress=postfixOperator:3rdParty/hippomocks.h \ - --suppress=stlSize:3rdParty/hippomocks.h \ - --suppress=noConstructor \ - --suppress=publicAllocationError:Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp \ - -i 3rdParty -i .git -i .sconf_temp \ - -i Swift/QtUI/EventViewer/main.cpp \ - -i Swift/QtUI/ApplicationTest \ - -i Swift/QtUI/ChatView/main.cpp \ - -i Swift/QtUI/Roster/main.cpp \ - -i Swift/QtUI/NotifierTest/NotifierTest.cpp \ - -DSWIFTEN_BUILDING -DSWIFTEN_STATIC \ - -U__BEOS__ -U__CYGWIN__ -U__QNNXTO__ -U__amigaos__ -Uhpux -U__sgi \ - \ - -I . \ - -I Swift/QtUI \ - . + --enable=all \ + --inline-suppr \ + --suppress=postfixOperator:3rdParty/hippomocks.h \ + --suppress=stlSize:3rdParty/hippomocks.h \ + --suppress=noConstructor \ + --suppress=publicAllocationError:Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp \ + -i 3rdParty -i .git -i .sconf_temp \ + -i Swift/QtUI/EventViewer/main.cpp \ + -i Swift/QtUI/ApplicationTest \ + -i Swift/QtUI/ChatView/main.cpp \ + -i Swift/QtUI/Roster/main.cpp \ + -i Swift/QtUI/NotifierTest/NotifierTest.cpp \ + -DSWIFTEN_BUILDING -DSWIFTEN_STATIC \ + -U__BEOS__ -U__CYGWIN__ -U__QNNXTO__ -U__amigaos__ -Uhpux -U__sgi \ + \ + -I . \ + -I Swift/QtUI \ + . diff --git a/BuildTools/DocBook/SCons/DocBook.py b/BuildTools/DocBook/SCons/DocBook.py index 7641b65..ffb0bfc 100644 --- a/BuildTools/DocBook/SCons/DocBook.py +++ b/BuildTools/DocBook/SCons/DocBook.py @@ -6,100 +6,100 @@ import SCons.Util, SCons.Action import xml.dom.minidom, re, os.path, sys def generate(env) : - # Location of stylesheets and catalogs - docbook_dir = "#/BuildTools/DocBook" - docbook_xsl_style_dir = env.Dir(docbook_dir + "/Stylesheets").abspath - docbook_xml_catalog = env.File("catalog.xml").abspath - if "DOCBOOK_XML_DIR" in env : - docbook_xml_dir = env.Dir("$DOCBOOK_XML_DIR").abspath - else : - docbook_xml_dir = env.Dir("#/3rdParty/DocBook/XML").abspath - if "DOCBOOK_XSL_DIR" in env : - docbook_xsl_dir = env.Dir("$DOCBOOK_XSL_DIR").abspath - else : - docbook_xsl_dir = env.Dir("#/3rdParty/DocBook/XSL").abspath - fop_fonts_dir = env.Dir(docbook_dir + "/Fonts").abspath - - # Generates a catalog from paths to external tools - def buildCatalog(target, source, env) : - catalog = """<?xml version='1.0'?> + # Location of stylesheets and catalogs + docbook_dir = "#/BuildTools/DocBook" + docbook_xsl_style_dir = env.Dir(docbook_dir + "/Stylesheets").abspath + docbook_xml_catalog = env.File("catalog.xml").abspath + if "DOCBOOK_XML_DIR" in env : + docbook_xml_dir = env.Dir("$DOCBOOK_XML_DIR").abspath + else : + docbook_xml_dir = env.Dir("#/3rdParty/DocBook/XML").abspath + if "DOCBOOK_XSL_DIR" in env : + docbook_xsl_dir = env.Dir("$DOCBOOK_XSL_DIR").abspath + else : + docbook_xsl_dir = env.Dir("#/3rdParty/DocBook/XSL").abspath + fop_fonts_dir = env.Dir(docbook_dir + "/Fonts").abspath + + # Generates a catalog from paths to external tools + def buildCatalog(target, source, env) : + catalog = """<?xml version='1.0'?> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> - <rewriteSystem - systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" - rewritePrefix="%(docbook_xml_dir)s/" /> - <rewriteSystem - systemIdStartString="docbook-xsl:/" - rewritePrefix="%(docbook_xsl_dir)s/" /> + <rewriteSystem + systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" + rewritePrefix="%(docbook_xml_dir)s/" /> + <rewriteSystem + systemIdStartString="docbook-xsl:/" + rewritePrefix="%(docbook_xsl_dir)s/" /> </catalog>""" - docbook_xml_dir = source[0].get_contents() - docbook_xsl_dir = source[1].get_contents() - if env["PLATFORM"] == "win32" : - docbook_xml_dir = docbook_xml_dir.replace("\\","/") - docbook_xsl_dir = docbook_xsl_dir.replace("\\","/") - file = open(target[0].abspath, "w") - file.write(catalog % { - "docbook_xml_dir" : docbook_xml_dir, - "docbook_xsl_dir" : docbook_xsl_dir, - }) - file.close() - - # Generates a FOP config file - def buildFopConfig(target, source, env) : - fopcfg = """<fop version=\"1.0\"> - <renderers> - <renderer mime=\"application/pdf\"> - <fonts> - <directory recursive=\"true\">%(fonts_dir)s</directory> - </fonts> - </renderer> - </renderers> + docbook_xml_dir = source[0].get_contents() + docbook_xsl_dir = source[1].get_contents() + if env["PLATFORM"] == "win32" : + docbook_xml_dir = docbook_xml_dir.replace("\\","/") + docbook_xsl_dir = docbook_xsl_dir.replace("\\","/") + file = open(target[0].abspath, "w") + file.write(catalog % { + "docbook_xml_dir" : docbook_xml_dir, + "docbook_xsl_dir" : docbook_xsl_dir, + }) + file.close() + + # Generates a FOP config file + def buildFopConfig(target, source, env) : + fopcfg = """<fop version=\"1.0\"> + <renderers> + <renderer mime=\"application/pdf\"> + <fonts> + <directory recursive=\"true\">%(fonts_dir)s</directory> + </fonts> + </renderer> + </renderers> </fop>""" - file = open(target[0].abspath, "w") - file.write(fopcfg % { - "fonts_dir" : source[0].get_contents() - }) - file.close() + file = open(target[0].abspath, "w") + file.write(fopcfg % { + "fonts_dir" : source[0].get_contents() + }) + file.close() - # Builds a DocBook file - def buildDocBook(env, source) : - db_env = env.Clone() - db_env["XMLCATALOGS"] = [docbook_xml_catalog] - db_env["ENV"].update({"OS" : os.environ.get("OS", "")}) + # Builds a DocBook file + def buildDocBook(env, source) : + db_env = env.Clone() + db_env["XMLCATALOGS"] = [docbook_xml_catalog] + db_env["ENV"].update({"OS" : os.environ.get("OS", "")}) - db_env["XMLLINT"] = env.WhereIs("xmllint") - db_env["XSLT"] = env.WhereIs("xsltproc") - db_env["FO"] = env.WhereIs("fop") + db_env["XMLLINT"] = env.WhereIs("xmllint") + db_env["XSLT"] = env.WhereIs("xsltproc") + db_env["FO"] = env.WhereIs("fop") - if not db_env["XMLLINT"] or not db_env["XSLT"] : - return + if not db_env["XMLLINT"] or not db_env["XSLT"] : + return - # PDF generation - if db_env["FO"] : - fo = db_env.XSLT(os.path.splitext(source)[0] + ".fo", source, - XSLTSTYLESHEET = db_env["DOCBOOK_XSL_FO"]) - pdf = db_env.FO(fo) + # PDF generation + if db_env["FO"] : + fo = db_env.XSLT(os.path.splitext(source)[0] + ".fo", source, + XSLTSTYLESHEET = db_env["DOCBOOK_XSL_FO"]) + pdf = db_env.FO(fo) - # HTML generation - db_env.XSLT(os.path.splitext(source)[0] + ".html", source, - XSLTSTYLESHEET = db_env["DOCBOOK_XSL_HTML"]) + # HTML generation + db_env.XSLT(os.path.splitext(source)[0] + ".html", source, + XSLTSTYLESHEET = db_env["DOCBOOK_XSL_HTML"]) - # Import tools - env.Tool("FO", toolpath = [docbook_dir + "/SCons"]) - env.Tool("XSLT", toolpath = [docbook_dir + "/SCons"]) + # Import tools + env.Tool("FO", toolpath = [docbook_dir + "/SCons"]) + env.Tool("XSLT", toolpath = [docbook_dir + "/SCons"]) - # Catalog file generation - env.Command("catalog.xml", [env.Value(docbook_xml_dir), env.Value(docbook_xsl_dir)], SCons.Action.Action(buildCatalog, cmdstr = "$GENCOMSTR")) + # Catalog file generation + env.Command("catalog.xml", [env.Value(docbook_xml_dir), env.Value(docbook_xsl_dir)], SCons.Action.Action(buildCatalog, cmdstr = "$GENCOMSTR")) - # FO config file generation - env["FOCFG"] = env.File("fop.cfg").abspath - env.Command("fop.cfg", [env.Value(fop_fonts_dir)], SCons.Action.Action(buildFopConfig, cmdstr = "$GENCOMSTR")) + # FO config file generation + env["FOCFG"] = env.File("fop.cfg").abspath + env.Command("fop.cfg", [env.Value(fop_fonts_dir)], SCons.Action.Action(buildFopConfig, cmdstr = "$GENCOMSTR")) - # DocBook stylesheets - env["DOCBOOK_XSL_FO"] = docbook_xsl_style_dir + "/fo/docbook.xsl" - env["DOCBOOK_XSL_HTML"] = docbook_xsl_style_dir + "/html/docbook.xsl" - env.AddMethod(buildDocBook, "DocBook") + # DocBook stylesheets + env["DOCBOOK_XSL_FO"] = docbook_xsl_style_dir + "/fo/docbook.xsl" + env["DOCBOOK_XSL_HTML"] = docbook_xsl_style_dir + "/html/docbook.xsl" + env.AddMethod(buildDocBook, "DocBook") def exists(env) : - return True + return True diff --git a/BuildTools/DocBook/SCons/FO.py b/BuildTools/DocBook/SCons/FO.py index a4079d7..c1c5614 100644 --- a/BuildTools/DocBook/SCons/FO.py +++ b/BuildTools/DocBook/SCons/FO.py @@ -6,40 +6,40 @@ import xml.dom.minidom, re ################################################################################ def generate(env) : - def generate_actions(source, target, env, for_signature) : - if len(env["FOCFG"]) > 0 : - cmd = "$FO -c $FOCFG $FOFLAGS $SOURCE $TARGET" - else : - cmd = "$FO $FOFLAGS $SOURCE $TARGET" - return SCons.Action.Action(cmd, cmdstr = "$FOCOMSTR") + def generate_actions(source, target, env, for_signature) : + if len(env["FOCFG"]) > 0 : + cmd = "$FO -c $FOCFG $FOFLAGS $SOURCE $TARGET" + else : + cmd = "$FO $FOFLAGS $SOURCE $TARGET" + return SCons.Action.Action(cmd, cmdstr = "$FOCOMSTR") - def modify_sources(target, source, env) : - if len(env["FOCFG"]) > 0 : - source.append(env["FOCFG"]) - return target, source + def modify_sources(target, source, env) : + if len(env["FOCFG"]) > 0 : + source.append(env["FOCFG"]) + return target, source - def scan_fo(node, env, path) : - dependencies = set() - try : - document = xml.dom.minidom.parseString(node.get_contents()) - except xml.parsers.expat.ExpatError: - return [] - for include in document.getElementsByTagNameNS("http://www.w3.org/1999/XSL/Format", "external-graphic") : - m = re.match("url\((.*)\)", include.getAttribute("src")) - if m : - dependencies.add(m.group(1)) - return list(dependencies) + def scan_fo(node, env, path) : + dependencies = set() + try : + document = xml.dom.minidom.parseString(node.get_contents()) + except xml.parsers.expat.ExpatError: + return [] + for include in document.getElementsByTagNameNS("http://www.w3.org/1999/XSL/Format", "external-graphic") : + m = re.match("url\((.*)\)", include.getAttribute("src")) + if m : + dependencies.add(m.group(1)) + return list(dependencies) - env["FO"] = "fop" - env["FOFLAGS"] = "" - env["FOCFG"] = "" - env["BUILDERS"]["FO"] = SCons.Builder.Builder( - generator = generate_actions, - emitter = modify_sources, - source_scanner = SCons.Scanner.Scanner(function = scan_fo, skeys = [".fo"]), - suffix = ".pdf", - src_suffix = ".fo" - ) + env["FO"] = "fop" + env["FOFLAGS"] = "" + env["FOCFG"] = "" + env["BUILDERS"]["FO"] = SCons.Builder.Builder( + generator = generate_actions, + emitter = modify_sources, + source_scanner = SCons.Scanner.Scanner(function = scan_fo, skeys = [".fo"]), + suffix = ".pdf", + src_suffix = ".fo" + ) def exists(env) : - return True + return True diff --git a/BuildTools/DocBook/SCons/XSLT.py b/BuildTools/DocBook/SCons/XSLT.py index 825f129..38e36c5 100644 --- a/BuildTools/DocBook/SCons/XSLT.py +++ b/BuildTools/DocBook/SCons/XSLT.py @@ -6,58 +6,58 @@ import xml.dom.minidom, os, os.path ################################################################################ def generate(env) : - def generate_actions(source, target, env, for_signature) : - if not env.has_key("XSLTSTYLESHEET") : - raise SCons.Errors.UserError, "The XSLTSTYLESHEET construction variable must be defined" - - # Process the XML catalog files - # FIXME: It's probably not clean to do an ENV assignment globally - env["ENV"]["XML_CATALOG_FILES"] = " ".join(env.get("XMLCATALOGS", "")) - - # Build the XMLLint command - xmllintcmd = ["$XMLLINT", "--nonet", "--xinclude", "--postvalid", "--noout", "$SOURCE"] - - # Build the XSLT command - xsltcmd = ["$XSLT", "--nonet", "--xinclude"] - for (param, value) in env["XSLTPARAMS"] : - xsltcmd += ["--stringparam", param, value] - xsltcmd += ["-o", "$TARGET", "$XSLTSTYLESHEET", "$SOURCE"] - - return [ - SCons.Action.Action([xmllintcmd], cmdstr = "$XMLLINTCOMSTR"), - SCons.Action.Action([xsltcmd], cmdstr = "$XSLTCOMSTR")] - - def modify_sources(target, source, env) : - if len(env["FOCFG"]) > 0 : - source.append(env["FOCFG"]) - source.append(env.get("XMLCATALOGS", [])) - return target, source - - def scan_xml(node, env, path) : - dependencies = set() - nodes = [node] - while len(nodes) > 0 : - node = nodes.pop() - try : - document = xml.dom.minidom.parseString(node.get_contents()) - except xml.parsers.expat.ExpatError: - continue - for include in document.getElementsByTagNameNS("http://www.w3.org/2001/XInclude", "include") : - include_file = include.getAttribute("href") - dependencies.add(include_file) - if include.getAttribute("parse") != "text" : - nodes.append(env.File(include_file)) - return list(dependencies) - - env["XMLLINT"] = "xmllint" - env["XSLT"] = "xsltproc" - env["XSLTPARAMS"] = [] - env["BUILDERS"]["XSLT"] = SCons.Builder.Builder( - generator = generate_actions, - emitter = modify_sources, - source_scanner = SCons.Scanner.Scanner(function = scan_xml), - src_suffix = ".xml" - ) + def generate_actions(source, target, env, for_signature) : + if not env.has_key("XSLTSTYLESHEET") : + raise SCons.Errors.UserError, "The XSLTSTYLESHEET construction variable must be defined" + + # Process the XML catalog files + # FIXME: It's probably not clean to do an ENV assignment globally + env["ENV"]["XML_CATALOG_FILES"] = " ".join(env.get("XMLCATALOGS", "")) + + # Build the XMLLint command + xmllintcmd = ["$XMLLINT", "--nonet", "--xinclude", "--postvalid", "--noout", "$SOURCE"] + + # Build the XSLT command + xsltcmd = ["$XSLT", "--nonet", "--xinclude"] + for (param, value) in env["XSLTPARAMS"] : + xsltcmd += ["--stringparam", param, value] + xsltcmd += ["-o", "$TARGET", "$XSLTSTYLESHEET", "$SOURCE"] + + return [ + SCons.Action.Action([xmllintcmd], cmdstr = "$XMLLINTCOMSTR"), + SCons.Action.Action([xsltcmd], cmdstr = "$XSLTCOMSTR")] + + def modify_sources(target, source, env) : + if len(env["FOCFG"]) > 0 : + source.append(env["FOCFG"]) + source.append(env.get("XMLCATALOGS", [])) + return target, source + + def scan_xml(node, env, path) : + dependencies = set() + nodes = [node] + while len(nodes) > 0 : + node = nodes.pop() + try : + document = xml.dom.minidom.parseString(node.get_contents()) + except xml.parsers.expat.ExpatError: + continue + for include in document.getElementsByTagNameNS("http://www.w3.org/2001/XInclude", "include") : + include_file = include.getAttribute("href") + dependencies.add(include_file) + if include.getAttribute("parse") != "text" : + nodes.append(env.File(include_file)) + return list(dependencies) + + env["XMLLINT"] = "xmllint" + env["XSLT"] = "xsltproc" + env["XSLTPARAMS"] = [] + env["BUILDERS"]["XSLT"] = SCons.Builder.Builder( + generator = generate_actions, + emitter = modify_sources, + source_scanner = SCons.Scanner.Scanner(function = scan_xml), + src_suffix = ".xml" + ) def exists(env) : - return True + return True diff --git a/BuildTools/FilterScanBuildResults.py b/BuildTools/FilterScanBuildResults.py index ed4a55f..a4861ac 100755 --- a/BuildTools/FilterScanBuildResults.py +++ b/BuildTools/FilterScanBuildResults.py @@ -6,23 +6,23 @@ resultsDir = sys.argv[1] resultDirs = [ d for d in os.listdir(resultsDir) if os.path.isdir(os.path.join(resultsDir, d)) ] resultDirs.sort() if len(resultDirs) > 0 : - resultDir = os.path.join(resultsDir, resultDirs[-1]) - resultFileName = os.path.join(resultDir, "index.html") - resultData = [] - f = open(resultFileName, "r") - skipLines = 0 - for line in f.readlines() : - if skipLines > 0 : - skipLines -= 1 - else : - if ("3rdParty" in line or "SHA1.cpp" in line or "lua.c" in line) : - m = re.match(".*(report-.*\.html)", line) - os.remove(os.path.join(resultDir, m.group(1))) - skipLines = 2 - else : - resultData.append(line) - f.close() + resultDir = os.path.join(resultsDir, resultDirs[-1]) + resultFileName = os.path.join(resultDir, "index.html") + resultData = [] + f = open(resultFileName, "r") + skipLines = 0 + for line in f.readlines() : + if skipLines > 0 : + skipLines -= 1 + else : + if ("3rdParty" in line or "SHA1.cpp" in line or "lua.c" in line) : + m = re.match(".*(report-.*\.html)", line) + os.remove(os.path.join(resultDir, m.group(1))) + skipLines = 2 + else : + resultData.append(line) + f.close() - f = open(resultFileName, "w") - f.writelines(resultData) - f.close() + f = open(resultFileName, "w") + f.writelines(resultData) + f.close() diff --git a/BuildTools/FixIncludes.py b/BuildTools/FixIncludes.py index d409a2c..d1b8268 100755 --- a/BuildTools/FixIncludes.py +++ b/BuildTools/FixIncludes.py @@ -9,7 +9,7 @@ filename = sys.argv[1] inPlace = False if "-i" in sys.argv: - inPlace = True + inPlace = True filename_base = os.path.basename(filename) (filename_name, filename_ext) = os.path.splitext(filename_base) @@ -19,144 +19,144 @@ c_stdlib_headers = Set(["assert.h", "limits.h", "signal.h", "stdlib.h", "ctyp cpp_stdlib_headers = Set(["algorithm", "fstream", "list", "regex", "typeindex", "array", "functional", "locale", "set", "typeinfo", "atomic", "future", "map", "sstream", "type_traits", "bitset", "initializer_list", "memory", "stack", "unordered_map", "chrono", "iomanip", "mutex", "stdexcept", "unordered_set", "codecvt", "ios", "new", "streambuf", "utility", "complex", "iosfwd", "numeric", "string", "valarray", "condition_variable", "iostream", "ostream", "strstream", "vector", "deque", "istream", "queue", "system_error", "exception", "iterator", "random", "thread", "forward_list", "limits", "ratio", "tuple", "cassert", "ciso646", "csetjmp", "cstdio", "ctime", "cctype", "climits", "csignal", "cstdlib", "cwchar", "cerrno", "clocale", "cstdarg", "cstring", "cwctype", "cfloat", "cmath", "cstddef"]) class HeaderType: - PRAGMA_ONCE, CORRESPONDING_HEADER, C_STDLIB, CPP_STDLIB, BOOST, QT, OTHER, SWIFTEN, LIMBER, SLIMBER, SWIFT_CONTROLLERS, SLUIFT, SWIFTOOLS, SWIFT = range(14) + PRAGMA_ONCE, CORRESPONDING_HEADER, C_STDLIB, CPP_STDLIB, BOOST, QT, OTHER, SWIFTEN, LIMBER, SLIMBER, SWIFT_CONTROLLERS, SLUIFT, SWIFTOOLS, SWIFT = range(14) def findHeaderBlock(lines): - start = False - end = False - lastLine = None - - for idx, line in enumerate(lines): - if not start and line.startswith("#"): - start = idx - elif start and (not end) and (not line.startswith("#")) and line.strip(): - end = idx-1 - break - if not end: - end = len(lines) - return (start, end) + start = False + end = False + lastLine = None + + for idx, line in enumerate(lines): + if not start and line.startswith("#"): + start = idx + elif start and (not end) and (not line.startswith("#")) and line.strip(): + end = idx-1 + break + if not end: + end = len(lines) + return (start, end) def lineToFileName(line): - match = re.match( r'#include "(.*)"', line) - if match: - return match.group(1) - match = re.match( r'#include <(.*)>', line) - if match: - return match.group(1) - return False + match = re.match( r'#include "(.*)"', line) + if match: + return match.group(1) + match = re.match( r'#include <(.*)>', line) + if match: + return match.group(1) + return False def fileNameToHeaderType(name): - if name.endswith("/" + filename_name + ".h"): - return HeaderType.CORRESPONDING_HEADER + if name.endswith("/" + filename_name + ".h"): + return HeaderType.CORRESPONDING_HEADER - if name in c_stdlib_headers: - return HeaderType.C_STDLIB + if name in c_stdlib_headers: + return HeaderType.C_STDLIB - if name in cpp_stdlib_headers: - return HeaderType.CPP_STDLIB + if name in cpp_stdlib_headers: + return HeaderType.CPP_STDLIB - if name.startswith("boost"): - return HeaderType.BOOST + if name.startswith("boost"): + return HeaderType.BOOST - if name.startswith("Q"): - return HeaderType.QT + if name.startswith("Q"): + return HeaderType.QT - if name.startswith("Swiften"): - return HeaderType.SWIFTEN + if name.startswith("Swiften"): + return HeaderType.SWIFTEN - if name.startswith("Limber"): - return HeaderType.LIMBER + if name.startswith("Limber"): + return HeaderType.LIMBER - if name.startswith("Slimber"): - return HeaderType.SLIMBER + if name.startswith("Slimber"): + return HeaderType.SLIMBER - if name.startswith("Swift/Controllers"): - return HeaderType.SWIFT_CONTROLLERS + if name.startswith("Swift/Controllers"): + return HeaderType.SWIFT_CONTROLLERS - if name.startswith("Sluift"): - return HeaderType.SLUIFT + if name.startswith("Sluift"): + return HeaderType.SLUIFT - if name.startswith("SwifTools"): - return HeaderType.SWIFTOOLS + if name.startswith("SwifTools"): + return HeaderType.SWIFTOOLS - if name.startswith("Swift"): - return HeaderType.SWIFT + if name.startswith("Swift"): + return HeaderType.SWIFT - return HeaderType.OTHER + return HeaderType.OTHER def serializeHeaderGroups(groups): - headerList = [] - for group in range(0, HeaderType.SWIFT + 1): - if group in groups: - # sorted and without duplicates - headers = sorted(list(set(groups[group]))) - headerList.extend(headers) - headerList.extend(["\n"]) - headerList.pop() - return headerList + headerList = [] + for group in range(0, HeaderType.SWIFT + 1): + if group in groups: + # sorted and without duplicates + headers = sorted(list(set(groups[group]))) + headerList.extend(headers) + headerList.extend(["\n"]) + headerList.pop() + return headerList def overwriteFile(filename, content): - with open(filename, 'w') as f: - for line in content: - f.write(line) + with open(filename, 'w') as f: + for line in content: + f.write(line) def cleanHeaderFile(content, headerStart, headerEnd, headerGroups): - del content[headerStart:headerEnd] - newHeaders = serializeHeaderGroups(headerGroups) - content[headerStart:1] = newHeaders + del content[headerStart:headerEnd] + newHeaders = serializeHeaderGroups(headerGroups) + content[headerStart:1] = newHeaders - if inPlace : - overwriteFile(filename, content) - else : - for line in content: - print line, + if inPlace : + overwriteFile(filename, content) + else : + for line in content: + print line, def cleanImplementationFile(content, headerStart, headerEnd, headerGroups): - del content[headerStart:headerEnd] - newHeaders = serializeHeaderGroups(headerGroups) - content[headerStart:1] = newHeaders + del content[headerStart:headerEnd] + newHeaders = serializeHeaderGroups(headerGroups) + content[headerStart:1] = newHeaders - if inPlace : - overwriteFile(filename, content) - else : - for line in content: - print line, + if inPlace : + overwriteFile(filename, content) + else : + for line in content: + print line, containsComplexPreprocessorDirectives = False with open(filename) as f: - content = f.readlines() + content = f.readlines() (headerStart, headerEnd) = findHeaderBlock(content) headerGroups = {} for line in content[headerStart:headerEnd]: - if line.strip(): - if line.strip().startswith("#pragma once"): - headerType = HeaderType.PRAGMA_ONCE - elif line.strip().startswith("#if") or line.strip().startswith("#def") or line.strip().startswith("#undef") or line.strip().startswith("#pragma "): - containsComplexPreprocessorDirectives = True - break - else: - #print line - headerType = fileNameToHeaderType(lineToFileName(line)) - - #filename = lineToFileName(line) - if headerType in headerGroups: - headerGroups[headerType].append(line) - else: - headerGroups[headerType] = [line] + if line.strip(): + if line.strip().startswith("#pragma once"): + headerType = HeaderType.PRAGMA_ONCE + elif line.strip().startswith("#if") or line.strip().startswith("#def") or line.strip().startswith("#undef") or line.strip().startswith("#pragma "): + containsComplexPreprocessorDirectives = True + break + else: + #print line + headerType = fileNameToHeaderType(lineToFileName(line)) + + #filename = lineToFileName(line) + if headerType in headerGroups: + headerGroups[headerType].append(line) + else: + headerGroups[headerType] = [line] if containsComplexPreprocessorDirectives: - print "Cannot format headers containing preprocessor #if, #pragma, #define or #undef statements!" - exit(1) + print "Cannot format headers containing preprocessor #if, #pragma, #define or #undef statements!" + exit(1) if filename_base.endswith(".h"): - if not HeaderType.PRAGMA_ONCE in headerGroups: - print "Missing #pragma once!" - exit(2) - cleanHeaderFile(content, headerStart, headerEnd, headerGroups) + if not HeaderType.PRAGMA_ONCE in headerGroups: + print "Missing #pragma once!" + exit(2) + cleanHeaderFile(content, headerStart, headerEnd, headerGroups) elif filename_base.endswith(".cpp") or filename_base.endswith(".mm"): - cleanImplementationFile(content, headerStart, headerEnd, headerGroups) + cleanImplementationFile(content, headerStart, headerEnd, headerGroups) diff --git a/BuildTools/GetBuildVersion.py b/BuildTools/GetBuildVersion.py index fc92d15..70fdc5c 100755 --- a/BuildTools/GetBuildVersion.py +++ b/BuildTools/GetBuildVersion.py @@ -8,14 +8,14 @@ assert(len(sys.argv) >= 2) only_major = False if "--major" in sys.argv : - only_major = True + only_major = True if only_major : - v = Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1]) - version_match = re.match("(\d+)\.(\d+).*", v) - if version_match : - print version_match.group(1) - else : - print "0" + v = Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1]) + version_match = re.match("(\d+)\.(\d+).*", v) + if version_match : + print version_match.group(1) + else : + print "0" else : - print Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1]) + print Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1]) diff --git a/BuildTools/Gource/GetGravatars.py b/BuildTools/Gource/GetGravatars.py index 47f8a68..d1f40a4 100755 --- a/BuildTools/Gource/GetGravatars.py +++ b/BuildTools/Gource/GetGravatars.py @@ -5,8 +5,8 @@ import subprocess, os, sys, hashlib, urllib GRAVATAR_URL = "http://www.gravatar.com/avatar/%(id)s?d=404" if len(sys.argv) != 2 : - print "Usage: " + sys.argv[0] + " <output-dir>" - sys.exit(-1) + print "Usage: " + sys.argv[0] + " <output-dir>" + sys.exit(-1) output_dir = sys.argv[1] @@ -14,36 +14,36 @@ output_dir = sys.argv[1] authors = {} p = subprocess.Popen("git log --pretty=format:'%ae|%an'", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) for line in p.stdout.readlines() : - author_components = line.rstrip().split("|") - authors[author_components[0]] = author_components[1] + author_components = line.rstrip().split("|") + authors[author_components[0]] = author_components[1] p.stdin.close() if p.wait() != 0 : - print "Error" - sys.exit(-1) + print "Error" + sys.exit(-1) # Get & save the avatars if not os.path.isdir(output_dir) : - os.makedirs(output_dir) + os.makedirs(output_dir) for email, name in authors.items() : - print "Processing avatar for " + name + " <" + email + ">" - filename = os.path.join(output_dir, name + ".png") - if os.path.isfile(filename) : - print "-> Already there. Skipping." - continue + print "Processing avatar for " + name + " <" + email + ">" + filename = os.path.join(output_dir, name + ".png") + if os.path.isfile(filename) : + print "-> Already there. Skipping." + continue - m = hashlib.md5() - m.update(email) - url = GRAVATAR_URL % {"id" : m.hexdigest()} - print "- Downloading " + url - f = urllib.urlopen(url) - input = None - if f.getcode() == 200 : - input = f.read() - f.close() - if input : - print "- Saving file " + filename - f = open(filename, "w") - f.write(input) - f.close() - else : - print "- No Gravatar found" + m = hashlib.md5() + m.update(email) + url = GRAVATAR_URL % {"id" : m.hexdigest()} + print "- Downloading " + url + f = urllib.urlopen(url) + input = None + if f.getcode() == 200 : + input = f.read() + f.close() + if input : + print "- Saving file " + filename + f = open(filename, "w") + f.write(input) + f.close() + else : + print "- No Gravatar found" diff --git a/BuildTools/InstallSwiftDependencies.sh b/BuildTools/InstallSwiftDependencies.sh index d1200b1..7017b5f 100755 --- a/BuildTools/InstallSwiftDependencies.sh +++ b/BuildTools/InstallSwiftDependencies.sh @@ -6,27 +6,27 @@ SYSTEM_NAME=$(uname) if [ "$SYSTEM_NAME" == "Linux" ] then - # handle linux distributions - SYSTEM_DISTRO=$(lsb_release -i -s) - if [ "$SYSTEM_DISTRO" == "Debian" ] - then - sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools - elif [ "$SYSTEM_DISTRO" == "Ubuntu" ] - then - sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools - elif [ "$SYSTEM_DISTRO" == "Arch" ] - then - sudo pacman -S qt5-base qt5-x11extras qt5-webkit qt5-multimedia qt5-tools - elif [ "$SYSTEM_DISTRO" == "openSUSE project" ] - then - sudo zypper in pkg-config libopenssl-devel libQt5Core-devel libQt5WebKit5-devel libQt5WebKitWidgets-devel libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libqt5-qttools-devel libQt5Gui-devel libQt5Network-devel libQt5DBus-devel python-xml - elif [ "$SYSTEM_DISTRO" == "Fedora" ] - then - sudo dnf groups install "C Development Tools and Libraries" - sudo dnf install openssl-devel qt5-qtbase-devel qt5-linguist qt5-qtwebkit-devel qt5-qtmultimedia-devel qt5-qtx11extras-devel - else - echo "Unsupported Linux distribution." - fi + # handle linux distributions + SYSTEM_DISTRO=$(lsb_release -i -s) + if [ "$SYSTEM_DISTRO" == "Debian" ] + then + sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools + elif [ "$SYSTEM_DISTRO" == "Ubuntu" ] + then + sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools + elif [ "$SYSTEM_DISTRO" == "Arch" ] + then + sudo pacman -S qt5-base qt5-x11extras qt5-webkit qt5-multimedia qt5-tools + elif [ "$SYSTEM_DISTRO" == "openSUSE project" ] + then + sudo zypper in pkg-config libopenssl-devel libQt5Core-devel libQt5WebKit5-devel libQt5WebKitWidgets-devel libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libqt5-qttools-devel libQt5Gui-devel libQt5Network-devel libQt5DBus-devel python-xml + elif [ "$SYSTEM_DISTRO" == "Fedora" ] + then + sudo dnf groups install "C Development Tools and Libraries" + sudo dnf install openssl-devel qt5-qtbase-devel qt5-linguist qt5-qtwebkit-devel qt5-qtmultimedia-devel qt5-qtx11extras-devel + else + echo "Unsupported Linux distribution." + fi else - echo "Unsupported system." + echo "Unsupported system." fi diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py index 1db7ff8..fda3484 100644 --- a/BuildTools/SCons/Tools/AppBundle.py +++ b/BuildTools/SCons/Tools/AppBundle.py @@ -1,64 +1,64 @@ import SCons.Util, os.path def generate(env) : - def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False) : - bundleDir = bundle + ".app" - bundleContentsDir = bundleDir + "/Contents" - resourcesDir = bundleContentsDir + "/Resources" - frameworksDir = bundleContentsDir + "/Frameworks" - env.Install(bundleContentsDir + "/MacOS", bundle) - env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77")) + def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False) : + bundleDir = bundle + ".app" + bundleContentsDir = bundleDir + "/Contents" + resourcesDir = bundleContentsDir + "/Resources" + frameworksDir = bundleContentsDir + "/Frameworks" + env.Install(bundleContentsDir + "/MacOS", bundle) + env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77")) - infoDict = { - "CFBundleDevelopmentRegion" : "English", - "CFBundleExecutable" : bundle, - "CFBundleIdentifier" : "im.swift." + bundle, - "CFBundleInfoDictionaryVersion" : "6.0", - "CFBundleName" : bundle, - "CFBundlePackageType" : "APPL", - "CFBundleSignature": "\77\77\77\77", - "CFBundleVersion" : version, - "CFBundleIconFile" : bundle, - "NSPrincipalClass" : "NSApplication", - "NSHumanReadableCopyright" : "(c) 2010 Swift Development Team.\nAll Rights Reserved." - } - infoDict.update(info) + infoDict = { + "CFBundleDevelopmentRegion" : "English", + "CFBundleExecutable" : bundle, + "CFBundleIdentifier" : "im.swift." + bundle, + "CFBundleInfoDictionaryVersion" : "6.0", + "CFBundleName" : bundle, + "CFBundlePackageType" : "APPL", + "CFBundleSignature": "\77\77\77\77", + "CFBundleVersion" : version, + "CFBundleIconFile" : bundle, + "NSPrincipalClass" : "NSApplication", + "NSHumanReadableCopyright" : "(c) 2010 Swift Development Team.\nAll Rights Reserved." + } + infoDict.update(info) - plist = """<?xml version="1.0" encoding="UTF-8"?> - <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - <plist version="1.0"> - <dict> - """ - for key, value in infoDict.items() : - plist += "<key>" + key + "</key>\n" - plist += "<string>" + value.encode("utf-8") + "</string>\n" - if handlesXMPPURIs : - plist += """<key>CFBundleURLTypes</key> + plist = """<?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + """ + for key, value in infoDict.items() : + plist += "<key>" + key + "</key>\n" + plist += "<string>" + value.encode("utf-8") + "</string>\n" + if handlesXMPPURIs : + plist += """<key>CFBundleURLTypes</key> <array> - <dict> - <key>CFBundleURLName</key> - <string>XMPP URL</string> - <key>CFBundleURLSchemes</key> - <array> - <string>xmpp</string> - </array> - </dict> + <dict> + <key>CFBundleURLName</key> + <string>XMPP URL</string> + <key>CFBundleURLSchemes</key> + <array> + <string>xmpp</string> + </array> + </dict> </array>\n""" - plist += """</dict> - </plist> - """ - env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist)) + plist += """</dict> + </plist> + """ + env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist)) - for (target, resource) in resources.items() : - env.Install(os.path.join(resourcesDir, target), resource) + for (target, resource) in resources.items() : + env.Install(os.path.join(resourcesDir, target), resource) - for framework in frameworks : - env.Install(frameworksDir, framework) + for framework in frameworks : + env.Install(frameworksDir, framework) - return env.Dir(bundleDir) + return env.Dir(bundleDir) - env.AddMethod(createAppBundle, "AppBundle") + env.AddMethod(createAppBundle, "AppBundle") def exists(env) : - return env["PLATFORM"] == "darwin" + return env["PLATFORM"] == "darwin" diff --git a/BuildTools/SCons/Tools/BuildVersion.py b/BuildTools/SCons/Tools/BuildVersion.py index b15448a..7968282 100644 --- a/BuildTools/SCons/Tools/BuildVersion.py +++ b/BuildTools/SCons/Tools/BuildVersion.py @@ -3,16 +3,16 @@ import SCons.Util import Version def generate(env) : - def createBuildVersion(env, target, project) : - buildVersion = """#pragma once + def createBuildVersion(env, target, project) : + buildVersion = """#pragma once static const char* buildVersion = \"%(buildVersion)s\";\n #define SWIFT_VERSION_STRING \"%(buildVersion)s\";\n """ % { "buildVersion" : Version.getBuildVersion(env.Dir("#").abspath, project) } - env.WriteVal(target, env.Value(buildVersion)) + env.WriteVal(target, env.Value(buildVersion)) - env.AddMethod(createBuildVersion, "BuildVersion") + env.AddMethod(createBuildVersion, "BuildVersion") def exists(env) : - return true + return true diff --git a/BuildTools/SCons/Tools/DoxyGen.py b/BuildTools/SCons/Tools/DoxyGen.py index 79af1c9..66a9111 100644 --- a/BuildTools/SCons/Tools/DoxyGen.py +++ b/BuildTools/SCons/Tools/DoxyGen.py @@ -1,26 +1,26 @@ import SCons.Util, os def generate(env) : - def modify_targets(target, source, env) : - target = [env.File("html/index.html")] - return target, source + def modify_targets(target, source, env) : + target = [env.File("html/index.html")] + return target, source - def generate_actions(source, target, env, for_signature) : - if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") : - return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")] - else : - return [] + def generate_actions(source, target, env, for_signature) : + if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") : + return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")] + else : + return [] - env["DOXYGEN"] = "doxygen" - # FIXME: For some reason, things go incredibly slow (at least on OS X) - # when not doing this. Some environment flag is having an effect on - # this; find out which - env["ENV"] = os.environ - env["DOT"] = "dot" - env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder( - emitter = modify_targets, - generator = generate_actions, - single_source = True) + env["DOXYGEN"] = "doxygen" + # FIXME: For some reason, things go incredibly slow (at least on OS X) + # when not doing this. Some environment flag is having an effect on + # this; find out which + env["ENV"] = os.environ + env["DOT"] = "dot" + env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder( + emitter = modify_targets, + generator = generate_actions, + single_source = True) def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/Flags.py b/BuildTools/SCons/Tools/Flags.py index 0768181..fe0cfcc 100644 --- a/BuildTools/SCons/Tools/Flags.py +++ b/BuildTools/SCons/Tools/Flags.py @@ -1,13 +1,13 @@ import SCons.Util def generate(env) : - def useFlags(env, flags) : - for flag in flags : - if flag in env : - env[flag] = env[flag] + flags[flag] - else : - env[flag] = flags[flag] - env.AddMethod(useFlags, "UseFlags") + def useFlags(env, flags) : + for flag in flags : + if flag in env : + env[flag] = env[flag] + flags[flag] + else : + env[flag] = flags[flag] + env.AddMethod(useFlags, "UseFlags") def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/Nib.py b/BuildTools/SCons/Tools/Nib.py index 91eb064..cf5b0dc 100644 --- a/BuildTools/SCons/Tools/Nib.py +++ b/BuildTools/SCons/Tools/Nib.py @@ -1,12 +1,12 @@ import SCons.Util def generate(env) : - env["IBTOOL"] = "ibtool" - env["BUILDERS"]["Nib"] = SCons.Builder.Builder( - action = SCons.Action.Action("$IBTOOL --errors --warnings --notices --output-format human-readable-text --compile $TARGET $SOURCE", cmdstr = "$NIBCOMSTR"), - suffix = ".nib", - src_suffix = ".xib", - single_source = True) + env["IBTOOL"] = "ibtool" + env["BUILDERS"]["Nib"] = SCons.Builder.Builder( + action = SCons.Action.Action("$IBTOOL --errors --warnings --notices --output-format human-readable-text --compile $TARGET $SOURCE", cmdstr = "$NIBCOMSTR"), + suffix = ".nib", + src_suffix = ".xib", + single_source = True) def exists(env) : - return env["PLATFORM"] == "darwin" + return env["PLATFORM"] == "darwin" diff --git a/BuildTools/SCons/Tools/ReplacePragmaOnce.py b/BuildTools/SCons/Tools/ReplacePragmaOnce.py index 3df0f41..cb49bbb 100644 --- a/BuildTools/SCons/Tools/ReplacePragmaOnce.py +++ b/BuildTools/SCons/Tools/ReplacePragmaOnce.py @@ -1,25 +1,25 @@ import SCons.Util, os.path def generate(env) : - root = env.Dir("#").abspath - def relpath(path, start) : - i = len(os.path.commonprefix([path, start])) - return path[i+1:] + root = env.Dir("#").abspath + def relpath(path, start) : + i = len(os.path.commonprefix([path, start])) + return path[i+1:] - def replacePragmaOnce(env, target, source) : - guard = relpath(source[0].abspath, root).replace("/", "_").replace(".", "_").upper() - data = source[0].get_contents() - f = open(str(target[0]), 'wb') - if "#pragma once" in data : - f.write(data.replace("#pragma once", "#ifndef %(guard)s\n#define %(guard)s" % {"guard": guard})) - f.write("\n#endif\n") - else : - f.write(data) - f.close() + def replacePragmaOnce(env, target, source) : + guard = relpath(source[0].abspath, root).replace("/", "_").replace(".", "_").upper() + data = source[0].get_contents() + f = open(str(target[0]), 'wb') + if "#pragma once" in data : + f.write(data.replace("#pragma once", "#ifndef %(guard)s\n#define %(guard)s" % {"guard": guard})) + f.write("\n#endif\n") + else : + f.write(data) + f.close() - env["BUILDERS"]["ReplacePragmaOnce"] = SCons.Builder.Builder( - action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), - single_source = True) + env["BUILDERS"]["ReplacePragmaOnce"] = SCons.Builder.Builder( + action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), + single_source = True) def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/SLOCCount.py b/BuildTools/SCons/Tools/SLOCCount.py index 682a797..be31672 100644 --- a/BuildTools/SCons/Tools/SLOCCount.py +++ b/BuildTools/SCons/Tools/SLOCCount.py @@ -1,17 +1,17 @@ import SCons.Util, os.path, os def generate(env) : - def createSLOCCount(env, source) : - myenv = env.Clone() - myenv["ENV"]["HOME"] = os.environ["HOME"] - source = myenv.Dir(source) - target = myenv.File("#/" + source.path + ".sloccount") - # FIXME: There's probably a better way to force building the .sc - if os.path.exists(target.abspath) : - os.unlink(target.abspath) - return myenv.Command(target, source, [SCons.Action.Action("sloccount --duplicates --wide --details " + source.path + " | grep -v qrc_ > $TARGET", cmdstr = "$GENCOMSTR")]) + def createSLOCCount(env, source) : + myenv = env.Clone() + myenv["ENV"]["HOME"] = os.environ["HOME"] + source = myenv.Dir(source) + target = myenv.File("#/" + source.path + ".sloccount") + # FIXME: There's probably a better way to force building the .sc + if os.path.exists(target.abspath) : + os.unlink(target.abspath) + return myenv.Command(target, source, [SCons.Action.Action("sloccount --duplicates --wide --details " + source.path + " | grep -v qrc_ > $TARGET", cmdstr = "$GENCOMSTR")]) - env.AddMethod(createSLOCCount, "SLOCCount") + env.AddMethod(createSLOCCount, "SLOCCount") def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/Test.py b/BuildTools/SCons/Tools/Test.py index 1eee4f6..72acb22 100644 --- a/BuildTools/SCons/Tools/Test.py +++ b/BuildTools/SCons/Tools/Test.py @@ -1,53 +1,53 @@ import SCons.Util, os def generate(env) : - def registerTest(env, target, type = "unit", is_checker = False) : - if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : - if SCons.Util.is_List(target) : - cmd = target[0].abspath - else : - cmd = target.abspath - params = "" - - # Special support for unittest checker - if is_checker and env.get("checker_report", False) : - params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml") - - ignore_prefix = "" - if env.get("TEST_IGNORE_RESULT", False) : - ignore_prefix = "-" - - # Set environment variables for running the test - test_env = env.Clone() - for i in ["HOME", "USERPROFILE", "APPDATA", "ASAN_OPTIONS", "LSAN_OPTIONS", "SWIFT_NETWORK_TEST_IPV4", "SWIFT_NETWORK_TEST_IPV6"]: - if os.environ.get(i, "") : - test_env["ENV"][i] = os.environ[i] - if env["target"] == "android" : - test_env["ENV"]["PATH"] = env["android_sdk_bin"] + ";" + test_env["ENV"]["PATH"] - else : - if test_env["PLATFORM"] == "darwin" : - test_env["ENV"]["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(map(lambda x : str(x), test_env.get("LIBPATH", []))) - elif test_env["PLATFORM"] == "win32" : - test_env["ENV"]["PATH"] = ";".join(map(lambda x : str(x), test_env.get("LIBRUNPATH", []))) + ";" + test_env["ENV"]["PATH"] - - - # Run the test - if env["target"] == "android": - exec_name = os.path.basename(cmd) - test_env.Command("**dummy**", target, SCons.Action.Action( - ["adb shell mount -o rw,remount /system", - "adb push " + cmd + " /system/bin/" + exec_name, - "adb shell SWIFT_CLIENTTEST_JID=\"" + os.getenv("SWIFT_CLIENTTEST_JID") + "\" SWIFT_CLIENTTEST_PASS=\"" + os.getenv("SWIFT_CLIENTTEST_PASS") + "\" " + env.get("TEST_RUNNER", "") + "/system/bin/" + exec_name], cmdstr = "$TESTCOMSTR")) - else : - test_env.Command("**dummy**", target, - SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR")) - - def registerScriptTests(env, scripts, name, type) : - if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : - pass - - env.AddMethod(registerTest, "Test") - env.AddMethod(registerScriptTests, "ScriptTests") + def registerTest(env, target, type = "unit", is_checker = False) : + if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : + if SCons.Util.is_List(target) : + cmd = target[0].abspath + else : + cmd = target.abspath + params = "" + + # Special support for unittest checker + if is_checker and env.get("checker_report", False) : + params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml") + + ignore_prefix = "" + if env.get("TEST_IGNORE_RESULT", False) : + ignore_prefix = "-" + + # Set environment variables for running the test + test_env = env.Clone() + for i in ["HOME", "USERPROFILE", "APPDATA", "ASAN_OPTIONS", "LSAN_OPTIONS", "SWIFT_NETWORK_TEST_IPV4", "SWIFT_NETWORK_TEST_IPV6"]: + if os.environ.get(i, "") : + test_env["ENV"][i] = os.environ[i] + if env["target"] == "android" : + test_env["ENV"]["PATH"] = env["android_sdk_bin"] + ";" + test_env["ENV"]["PATH"] + else : + if test_env["PLATFORM"] == "darwin" : + test_env["ENV"]["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(map(lambda x : str(x), test_env.get("LIBPATH", []))) + elif test_env["PLATFORM"] == "win32" : + test_env["ENV"]["PATH"] = ";".join(map(lambda x : str(x), test_env.get("LIBRUNPATH", []))) + ";" + test_env["ENV"]["PATH"] + + + # Run the test + if env["target"] == "android": + exec_name = os.path.basename(cmd) + test_env.Command("**dummy**", target, SCons.Action.Action( + ["adb shell mount -o rw,remount /system", + "adb push " + cmd + " /system/bin/" + exec_name, + "adb shell SWIFT_CLIENTTEST_JID=\"" + os.getenv("SWIFT_CLIENTTEST_JID") + "\" SWIFT_CLIENTTEST_PASS=\"" + os.getenv("SWIFT_CLIENTTEST_PASS") + "\" " + env.get("TEST_RUNNER", "") + "/system/bin/" + exec_name], cmdstr = "$TESTCOMSTR")) + else : + test_env.Command("**dummy**", target, + SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR")) + + def registerScriptTests(env, scripts, name, type) : + if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : + pass + + env.AddMethod(registerTest, "Test") + env.AddMethod(registerScriptTests, "ScriptTests") def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/WindowsBundle.py b/BuildTools/SCons/Tools/WindowsBundle.py index ef77acb..20d41ff 100644 --- a/BuildTools/SCons/Tools/WindowsBundle.py +++ b/BuildTools/SCons/Tools/WindowsBundle.py @@ -4,119 +4,119 @@ import re import shutil def which(program_name): - if hasattr(shutil, "which"): - return shutil.which(program_name) - else: - path = os.getenv('PATH') - for p in path.split(os.path.pathsep): - p = os.path.join(p,program_name) - if os.path.exists(p) and os.access(p,os.X_OK): - return p + if hasattr(shutil, "which"): + return shutil.which(program_name) + else: + path = os.getenv('PATH') + for p in path.split(os.path.pathsep): + p = os.path.join(p,program_name) + if os.path.exists(p) and os.access(p,os.X_OK): + return p def generate(env) : - def captureWinDeployQtMapping(release = True): - p = False - - qt_bin_folder = "" - if "QTDIR" in env: - qt_bin_folder = env["QTDIR"] + "\\bin;" - - environ = {"PATH": qt_bin_folder + os.getenv("PATH"), "TEMP": os.getenv("TEMP"), "TMP": os.getenv("TMP")} - - if release: - p = subprocess.Popen(['windeployqt', '--release', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ) - else: - p = subprocess.Popen(['windeployqt', '--debug', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ) - - if p: - stdout, stderr = p.communicate() - - mappings = [] - - p = re.compile(ur'"([^\"]*)" "([^\"]*)"') - - matches = re.findall(p, stdout) - for match in matches: - mappings.append(match) - return mappings - else: - return False - - def createWindowsBundleManual(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') : - all_files = [] - all_files += env.Install(bundle, bundle + ".exe") - for lib in qtlibs : - all_files += env.Install(bundle, os.path.join(env["QTDIR"], "bin", lib + ".dll")) - plugins_suffix = '4' - if qtversion == '5' : - plugins_suffix = '' - for plugin_type in qtplugins: - all_files += env.Install(os.path.join(bundle, plugin_type), [os.path.join(env["QTDIR"], "plugins", plugin_type, "q" + plugin + plugins_suffix + ".dll") for plugin in qtplugins[plugin_type]]) - for dir, resourceFiles in resources.items() : - for resource in resourceFiles : - e = env.Entry(resource) - if e.isdir() : - for subresource in env.Glob(str(e) + "/*") : - all_files += env.Install(os.path.join(bundle, dir, e.name), subresource) - else : - all_files += env.Install(os.path.join(bundle, dir), resource) - return all_files - - # This version of uses windeployqt tool - def createWindowsBundleWithWinDeployQt(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') : - assert(qtversion == '5') - all_files = [] - - # add swift executable - all_files += env.Install(bundle, bundle + ".exe") - - # adding resources (swift sounds/images/translations) - for dir, resourceFiles in resources.items() : - for resource in resourceFiles : - e = env.Entry(resource) - if e.isdir() : - for subresource in env.Glob(str(e) + "/*") : - all_files += env.Install(os.path.join(bundle, dir, e.name), subresource) - else : - all_files += env.Install(os.path.join(bundle, dir), resource) - - qtmappings = captureWinDeployQtMapping() - assert(qtmappings) - - # handle core DLLs - qt_corelib_regex = re.compile(ur".*bin.*\\(.*)\.dll") - - for qtlib in qtlibs: - if qtlib.startswith("Qt5"): - (src_path, target_path) = next(((src_path, target_path) for (src_path, target_path) in qtmappings if qt_corelib_regex.match(src_path) and qt_corelib_regex.match(src_path).group(1) == qtlib), (None, None)) - if src_path != None: - all_files += env.Install(bundle, src_path) - - # handle core dependencies - for (src_path, target_path) in qtmappings: - if qt_corelib_regex.match(src_path) and not qt_corelib_regex.match(src_path).group(1).startswith("Qt5"): - all_files += env.Install(bundle, src_path) - - # handle plugins - qt_plugin_regex = re.compile(ur".*plugins.*\\(.*)\\(.*)\.dll") - for (src_path, target_path) in qtmappings: - if qt_plugin_regex.match(src_path): - plugin_folder, filename = qt_plugin_regex.match(src_path).groups() - try: - if plugin_folder in ["audio"] or filename[1:] in qtplugins[plugin_folder]: - all_files += env.Install(os.path.join(bundle, plugin_folder), src_path) - except: - pass - return all_files - - def createWindowsBundle(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4'): - if which("windeployqt.exe"): - return createWindowsBundleWithWinDeployQt(env, bundle, resources, qtplugins, qtlibs, qtversion) - else: - return createWindowsBundleManual(env, bundle, resources, qtplugins, qtlibs, qtversion) - - env.AddMethod(createWindowsBundle, "WindowsBundle") + def captureWinDeployQtMapping(release = True): + p = False + + qt_bin_folder = "" + if "QTDIR" in env: + qt_bin_folder = env["QTDIR"] + "\\bin;" + + environ = {"PATH": qt_bin_folder + os.getenv("PATH"), "TEMP": os.getenv("TEMP"), "TMP": os.getenv("TMP")} + + if release: + p = subprocess.Popen(['windeployqt', '--release', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ) + else: + p = subprocess.Popen(['windeployqt', '--debug', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ) + + if p: + stdout, stderr = p.communicate() + + mappings = [] + + p = re.compile(ur'"([^\"]*)" "([^\"]*)"') + + matches = re.findall(p, stdout) + for match in matches: + mappings.append(match) + return mappings + else: + return False + + def createWindowsBundleManual(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') : + all_files = [] + all_files += env.Install(bundle, bundle + ".exe") + for lib in qtlibs : + all_files += env.Install(bundle, os.path.join(env["QTDIR"], "bin", lib + ".dll")) + plugins_suffix = '4' + if qtversion == '5' : + plugins_suffix = '' + for plugin_type in qtplugins: + all_files += env.Install(os.path.join(bundle, plugin_type), [os.path.join(env["QTDIR"], "plugins", plugin_type, "q" + plugin + plugins_suffix + ".dll") for plugin in qtplugins[plugin_type]]) + for dir, resourceFiles in resources.items() : + for resource in resourceFiles : + e = env.Entry(resource) + if e.isdir() : + for subresource in env.Glob(str(e) + "/*") : + all_files += env.Install(os.path.join(bundle, dir, e.name), subresource) + else : + all_files += env.Install(os.path.join(bundle, dir), resource) + return all_files + + # This version of uses windeployqt tool + def createWindowsBundleWithWinDeployQt(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') : + assert(qtversion == '5') + all_files = [] + + # add swift executable + all_files += env.Install(bundle, bundle + ".exe") + + # adding resources (swift sounds/images/translations) + for dir, resourceFiles in resources.items() : + for resource in resourceFiles : + e = env.Entry(resource) + if e.isdir() : + for subresource in env.Glob(str(e) + "/*") : + all_files += env.Install(os.path.join(bundle, dir, e.name), subresource) + else : + all_files += env.Install(os.path.join(bundle, dir), resource) + + qtmappings = captureWinDeployQtMapping() + assert(qtmappings) + + # handle core DLLs + qt_corelib_regex = re.compile(ur".*bin.*\\(.*)\.dll") + + for qtlib in qtlibs: + if qtlib.startswith("Qt5"): + (src_path, target_path) = next(((src_path, target_path) for (src_path, target_path) in qtmappings if qt_corelib_regex.match(src_path) and qt_corelib_regex.match(src_path).group(1) == qtlib), (None, None)) + if src_path != None: + all_files += env.Install(bundle, src_path) + + # handle core dependencies + for (src_path, target_path) in qtmappings: + if qt_corelib_regex.match(src_path) and not qt_corelib_regex.match(src_path).group(1).startswith("Qt5"): + all_files += env.Install(bundle, src_path) + + # handle plugins + qt_plugin_regex = re.compile(ur".*plugins.*\\(.*)\\(.*)\.dll") + for (src_path, target_path) in qtmappings: + if qt_plugin_regex.match(src_path): + plugin_folder, filename = qt_plugin_regex.match(src_path).groups() + try: + if plugin_folder in ["audio"] or filename[1:] in qtplugins[plugin_folder]: + all_files += env.Install(os.path.join(bundle, plugin_folder), src_path) + except: + pass + return all_files + + def createWindowsBundle(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4'): + if which("windeployqt.exe"): + return createWindowsBundleWithWinDeployQt(env, bundle, resources, qtplugins, qtlibs, qtversion) + else: + return createWindowsBundleManual(env, bundle, resources, qtplugins, qtlibs, qtversion) + + env.AddMethod(createWindowsBundle, "WindowsBundle") def exists(env) : - return env["PLATFORM"] == "win32" + return env["PLATFORM"] == "win32" diff --git a/BuildTools/SCons/Tools/WriteVal.py b/BuildTools/SCons/Tools/WriteVal.py index 4e8d3bb..ad77a99 100644 --- a/BuildTools/SCons/Tools/WriteVal.py +++ b/BuildTools/SCons/Tools/WriteVal.py @@ -1,15 +1,15 @@ import SCons.Util def generate(env) : - def replacePragmaOnce(env, target, source) : - f = open(str(target[0]), 'wb') - f.write(source[0].get_contents()) - f.close() + def replacePragmaOnce(env, target, source) : + f = open(str(target[0]), 'wb') + f.write(source[0].get_contents()) + f.close() - env["BUILDERS"]["WriteVal"] = SCons.Builder.Builder( - action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), - single_source = True) + env["BUILDERS"]["WriteVal"] = SCons.Builder.Builder( + action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), + single_source = True) def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/nsis.py b/BuildTools/SCons/Tools/nsis.py index f5b2905..393beb8 100644 --- a/BuildTools/SCons/Tools/nsis.py +++ b/BuildTools/SCons/Tools/nsis.py @@ -6,34 +6,34 @@ nsisIncludes_re = re.compile(r'^\s*!include (translations-\S*)', re.M) """ TODO: - - Extract the target from the nsis file - - When a target is provided use the output function + - Extract the target from the nsis file + - When a target is provided use the output function """ def generate(env) : - """Add Builders and construction variables for qt to an Environment.""" - Builder = SCons.Builder.Builder + """Add Builders and construction variables for qt to an Environment.""" + Builder = SCons.Builder.Builder - env['NSIS_MAKENSIS'] = 'makensis' - env['NSIS_OPTIONS'] = ["/V2"] - def winToLocalReformat(path) : - return os.path.join(*path.split("\\")) - def scanNsisContent(node, env, path, arg): - contents = node.get_contents() - includes = nsisFiles_re.findall(contents) + nsisIncludes_re.findall(contents) - includes = [ winToLocalReformat(include) for include in includes ] - return filter(lambda x: x.rfind('*')==-1, includes) - nsisscanner = env.Scanner(name = 'nsisfile', - function = scanNsisContent, - argument = None, - skeys = ['.nsi']) - nsisbuilder = Builder( - action = SCons.Action.Action('$NSIS_MAKENSIS $NSIS_OPTIONS $SOURCE', cmdstr = '$NSISCOMSTR'), - source_scanner = nsisscanner, - single_source = True - ) - env.Append( BUILDERS={'Nsis' : nsisbuilder} ) + env['NSIS_MAKENSIS'] = 'makensis' + env['NSIS_OPTIONS'] = ["/V2"] + def winToLocalReformat(path) : + return os.path.join(*path.split("\\")) + def scanNsisContent(node, env, path, arg): + contents = node.get_contents() + includes = nsisFiles_re.findall(contents) + nsisIncludes_re.findall(contents) + includes = [ winToLocalReformat(include) for include in includes ] + return filter(lambda x: x.rfind('*')==-1, includes) + nsisscanner = env.Scanner(name = 'nsisfile', + function = scanNsisContent, + argument = None, + skeys = ['.nsi']) + nsisbuilder = Builder( + action = SCons.Action.Action('$NSIS_MAKENSIS $NSIS_OPTIONS $SOURCE', cmdstr = '$NSISCOMSTR'), + source_scanner = nsisscanner, + single_source = True + ) + env.Append( BUILDERS={'Nsis' : nsisbuilder} ) def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py index 1d03c00..a0b29ba 100644 --- a/BuildTools/SCons/Tools/qt4.py +++ b/BuildTools/SCons/Tools/qt4.py @@ -47,24 +47,24 @@ import SCons.Util import SCons.SConf class ToolQtWarning(SCons.Warnings.Warning): - pass + pass class GeneratedMocFileNotIncluded(ToolQtWarning): - pass + pass class QtdirNotFound(ToolQtWarning): - pass + pass SCons.Warnings.enableWarningClass(ToolQtWarning) qrcinclude_re = re.compile(r'<file (alias=\"[^\"]*\")?>([^<]*)</file>', re.M) def transformToWinePath(path) : - return os.popen('winepath -w "%s"'%path).read().strip().replace('\\','/') + return os.popen('winepath -w "%s"'%path).read().strip().replace('\\','/') header_extensions = [".h", ".hxx", ".hpp", ".hh"] if SCons.Util.case_sensitive_suffixes('.h', '.H'): - header_extensions.append('.H') + header_extensions.append('.H') # TODO: The following two lines will work when integrated back to SCons # TODO: Meanwhile the third line will do the work #cplusplus = __import__('c++', globals(), locals(), []) @@ -72,519 +72,519 @@ if SCons.Util.case_sensitive_suffixes('.h', '.H'): cxx_suffixes = [".c", ".cxx", ".cpp", ".cc"] def checkMocIncluded(target, source, env): - moc = target[0] - cpp = source[0] - # looks like cpp.includes is cleared before the build stage :-( - # not really sure about the path transformations (moc.cwd? cpp.cwd?) :-/ - path = SCons.Defaults.CScan.path_function(env, moc.cwd) - includes = SCons.Defaults.CScan(cpp, env, path) - if not moc in includes: - SCons.Warnings.warn( - GeneratedMocFileNotIncluded, - "Generated moc file '%s' is not included by '%s'" % - (str(moc), str(cpp))) + moc = target[0] + cpp = source[0] + # looks like cpp.includes is cleared before the build stage :-( + # not really sure about the path transformations (moc.cwd? cpp.cwd?) :-/ + path = SCons.Defaults.CScan.path_function(env, moc.cwd) + includes = SCons.Defaults.CScan(cpp, env, path) + if not moc in includes: + SCons.Warnings.warn( + GeneratedMocFileNotIncluded, + "Generated moc file '%s' is not included by '%s'" % + (str(moc), str(cpp))) def find_file(filename, paths, node_factory): - for dir in paths: - node = node_factory(filename, dir) - if node.rexists(): - return node - return None + for dir in paths: + node = node_factory(filename, dir) + if node.rexists(): + return node + return None class _Automoc: - """ - Callable class, which works as an emitter for Programs, SharedLibraries and - StaticLibraries. - """ - - def __init__(self, objBuilderName): - self.objBuilderName = objBuilderName - - def __call__(self, target, source, env): - """ - Smart autoscan function. Gets the list of objects for the Program - or Lib. Adds objects and builders for the special qt files. - """ - try: - if int(env.subst('$QT4_AUTOSCAN')) == 0: - return target, source - except ValueError: - pass - try: - debug = int(env.subst('$QT4_DEBUG')) - except ValueError: - debug = 0 - - # some shortcuts used in the scanner - splitext = SCons.Util.splitext - objBuilder = getattr(env, self.objBuilderName) - - # some regular expressions: - # Q_OBJECT detection - q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]') - # cxx and c comment 'eater' - #comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)') - # CW: something must be wrong with the regexp. See also bug #998222 - # CURRENTLY THERE IS NO TEST CASE FOR THAT - - # The following is kind of hacky to get builders working properly (FIXME) - objBuilderEnv = objBuilder.env - objBuilder.env = env - mocBuilderEnv = env.Moc4.env - env.Moc4.env = env - - # make a deep copy for the result; MocH objects will be appended - out_sources = source[:] - - for obj in source: - if isinstance(obj,basestring): # big kludge! - print "scons: qt4: '%s' MAYBE USING AN OLD SCONS VERSION AND NOT CONVERTED TO 'File'. Discarded." % str(obj) - continue - if not obj.has_builder(): - # binary obj file provided - if debug: - print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj) - continue - cpp = obj.sources[0] - if not splitext(str(cpp))[1] in cxx_suffixes: - if debug: - print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp) - # c or fortran source - continue - #cpp_contents = comment.sub('', cpp.get_contents()) - try: - cpp_contents = cpp.get_contents() - except: continue # may be an still not generated source - h=None - for h_ext in header_extensions: - # try to find the header file in the corresponding source - # directory - hname = splitext(cpp.name)[0] + h_ext - h = find_file(hname, (cpp.get_dir(),), env.File) - if h: - if debug: - print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp)) - #h_contents = comment.sub('', h.get_contents()) - h_contents = h.get_contents() - break - if not h and debug: - print "scons: qt: no header for '%s'." % (str(cpp)) - if h and q_object_search.search(h_contents): - # h file with the Q_OBJECT macro found -> add moc_cpp - moc_cpp = env.Moc4(h) - moc_o = objBuilder(moc_cpp) - out_sources.append(moc_o) - #moc_cpp.target_scanner = SCons.Defaults.CScan - if debug: - print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp)) - if cpp and q_object_search.search(cpp_contents): - # cpp file with Q_OBJECT macro found -> add moc - # (to be included in cpp) - moc = env.Moc4(cpp) - env.Ignore(moc, moc) - if debug: - print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(cpp), str(moc)) - #moc.source_scanner = SCons.Defaults.CScan - # restore the original env attributes (FIXME) - objBuilder.env = objBuilderEnv - env.Moc4.env = mocBuilderEnv - - return (target, out_sources) + """ + Callable class, which works as an emitter for Programs, SharedLibraries and + StaticLibraries. + """ + + def __init__(self, objBuilderName): + self.objBuilderName = objBuilderName + + def __call__(self, target, source, env): + """ + Smart autoscan function. Gets the list of objects for the Program + or Lib. Adds objects and builders for the special qt files. + """ + try: + if int(env.subst('$QT4_AUTOSCAN')) == 0: + return target, source + except ValueError: + pass + try: + debug = int(env.subst('$QT4_DEBUG')) + except ValueError: + debug = 0 + + # some shortcuts used in the scanner + splitext = SCons.Util.splitext + objBuilder = getattr(env, self.objBuilderName) + + # some regular expressions: + # Q_OBJECT detection + q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]') + # cxx and c comment 'eater' + #comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)') + # CW: something must be wrong with the regexp. See also bug #998222 + # CURRENTLY THERE IS NO TEST CASE FOR THAT + + # The following is kind of hacky to get builders working properly (FIXME) + objBuilderEnv = objBuilder.env + objBuilder.env = env + mocBuilderEnv = env.Moc4.env + env.Moc4.env = env + + # make a deep copy for the result; MocH objects will be appended + out_sources = source[:] + + for obj in source: + if isinstance(obj,basestring): # big kludge! + print "scons: qt4: '%s' MAYBE USING AN OLD SCONS VERSION AND NOT CONVERTED TO 'File'. Discarded." % str(obj) + continue + if not obj.has_builder(): + # binary obj file provided + if debug: + print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj) + continue + cpp = obj.sources[0] + if not splitext(str(cpp))[1] in cxx_suffixes: + if debug: + print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp) + # c or fortran source + continue + #cpp_contents = comment.sub('', cpp.get_contents()) + try: + cpp_contents = cpp.get_contents() + except: continue # may be an still not generated source + h=None + for h_ext in header_extensions: + # try to find the header file in the corresponding source + # directory + hname = splitext(cpp.name)[0] + h_ext + h = find_file(hname, (cpp.get_dir(),), env.File) + if h: + if debug: + print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp)) + #h_contents = comment.sub('', h.get_contents()) + h_contents = h.get_contents() + break + if not h and debug: + print "scons: qt: no header for '%s'." % (str(cpp)) + if h and q_object_search.search(h_contents): + # h file with the Q_OBJECT macro found -> add moc_cpp + moc_cpp = env.Moc4(h) + moc_o = objBuilder(moc_cpp) + out_sources.append(moc_o) + #moc_cpp.target_scanner = SCons.Defaults.CScan + if debug: + print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp)) + if cpp and q_object_search.search(cpp_contents): + # cpp file with Q_OBJECT macro found -> add moc + # (to be included in cpp) + moc = env.Moc4(cpp) + env.Ignore(moc, moc) + if debug: + print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(cpp), str(moc)) + #moc.source_scanner = SCons.Defaults.CScan + # restore the original env attributes (FIXME) + objBuilder.env = objBuilderEnv + env.Moc4.env = mocBuilderEnv + + return (target, out_sources) AutomocShared = _Automoc('SharedObject') AutomocStatic = _Automoc('StaticObject') def _detect(env): - """Not really safe, but fast method to detect the QT library""" - if 'QTDIR' in env : - return env['QTDIR'] - - if 'QTDIR' in os.environ : - return os.environ['QTDIR'] - - moc = None - if env["qt5"]: - moc = env.WhereIs('moc-qt5') or env.WhereIs('moc5') or env.WhereIs('moc') - else : - moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc') - if moc: - # Test whether the moc command we found is real, or whether it is just the qtchooser dummy. - p = subprocess.Popen([moc, "-v"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - p.communicate() - if p.returncode == 0: - import sys - if sys.platform == "darwin" : - return "" - QTDIR = os.path.dirname(os.path.dirname(moc)) - return QTDIR - - raise SCons.Errors.StopError( - QtdirNotFound, - "Could not detect Qt 4 installation") - return None + """Not really safe, but fast method to detect the QT library""" + if 'QTDIR' in env : + return env['QTDIR'] + + if 'QTDIR' in os.environ : + return os.environ['QTDIR'] + + moc = None + if env["qt5"]: + moc = env.WhereIs('moc-qt5') or env.WhereIs('moc5') or env.WhereIs('moc') + else : + moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc') + if moc: + # Test whether the moc command we found is real, or whether it is just the qtchooser dummy. + p = subprocess.Popen([moc, "-v"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p.communicate() + if p.returncode == 0: + import sys + if sys.platform == "darwin" : + return "" + QTDIR = os.path.dirname(os.path.dirname(moc)) + return QTDIR + + raise SCons.Errors.StopError( + QtdirNotFound, + "Could not detect Qt 4 installation") + return None def generate(env): - """Add Builders and construction variables for qt to an Environment.""" - - def locateQt4Command(env, command, qtdir) : - if len(qtdir) == 0 : - qtdir = "/usr" - if env["qt5"]: - suffixes = [ - '-qt5', - '-qt5.exe', - '5', - '5.exe', - '', - '.exe', - ] - else : - suffixes = [ - '-qt4', - '-qt4.exe', - '4', - '4.exe', - '', - '.exe', - ] - triedPaths = [] - for suffix in suffixes : - fullpath = os.path.join(qtdir,'bin',command + suffix) - if os.access(fullpath, os.X_OK) : - return fullpath - triedPaths.append(fullpath) - - fullpath = env.Detect([command+'-qt4', command+'4', command]) - if not (fullpath is None) : return fullpath - - raise Exception("Qt4 command '" + command + "' not found. Tried: " + ', '.join(triedPaths)) - - - CLVar = SCons.Util.CLVar - Action = SCons.Action.Action - Builder = SCons.Builder.Builder - splitext = SCons.Util.splitext - - env['QTDIR'] = _detect(env) - # TODO: 'Replace' should be 'SetDefault' -# env.SetDefault( - env.Replace( - QTDIR = _detect(env), - # TODO: This is not reliable to QTDIR value changes but needed in order to support '-qt4' variants - QT4_MOC = locateQt4Command(env,'moc', env['QTDIR']), - QT4_UIC = locateQt4Command(env,'uic', env['QTDIR']), - QT4_RCC = locateQt4Command(env,'rcc', env['QTDIR']), - QT4_LUPDATE = locateQt4Command(env,'lupdate', env['QTDIR']), - QT4_LRELEASE = locateQt4Command(env,'lrelease', env['QTDIR']), - QT4_LIB = '', # KLUDGE to avoid linking qt3 library - - QT4_AUTOSCAN = 1, # Should the qt tool try to figure out, which sources are to be moc'ed? - - # Some QT specific flags. I don't expect someone wants to - # manipulate those ... - QT4_UICFLAGS = CLVar(''), - QT4_MOCFROMHFLAGS = CLVar(''), - QT4_MOCFROMCXXFLAGS = CLVar('-i'), - QT4_QRCFLAGS = '--compress 9 --threshold 5', - - # suffixes/prefixes for the headers / sources to generate - QT4_UISUFFIX = '.ui', - QT4_UICDECLPREFIX = 'ui_', - QT4_UICDECLSUFFIX = '.h', - QT4_MOCHPREFIX = 'moc_', - QT4_MOCHSUFFIX = '$CXXFILESUFFIX', - QT4_MOCCXXPREFIX = '', - QT4_MOCCXXSUFFIX = '.moc', - QT4_QRCSUFFIX = '.qrc', - QT4_QRCCXXSUFFIX = '$CXXFILESUFFIX', - QT4_QRCCXXPREFIX = 'qrc_', - QT4_MOCCPPPATH = [], - QT4_MOCINCFLAGS = '$( ${_concat("-I", QT4_MOCCPPPATH, INCSUFFIX, __env__, RDirs)} $)', - - # Commands for the qt support ... - QT4_UICCOM = '$QT4_UIC $QT4_UICFLAGS -o $TARGET $SOURCE', - # FIXME: The -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED flag is a hack to work - # around an issue in Qt - # See https://bugreports.qt-project.org/browse/QTBUG-22829 - QT4_MOCFROMHCOM = '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMHFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE', - QT4_MOCFROMCXXCOM = [ - '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMCXXFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE', - Action(checkMocIncluded,None)], - QT4_LUPDATECOM = '$QT4_LUPDATE $SOURCE -ts $TARGET', - QT4_LRELEASECOM = '$QT4_LRELEASE -silent $SOURCE -qm $TARGET', - QT4_RCCCOM = '$QT4_RCC $QT4_QRCFLAGS -name $SOURCE $SOURCE -o $TARGET', - ) - if len(env["QTDIR"]) > 0 : - env.Replace(QT4_LIBPATH = os.path.join('$QTDIR', 'lib')) - - # Translation builder - tsbuilder = Builder( - action = SCons.Action.Action('$QT4_LUPDATECOM'), #,'$QT4_LUPDATECOMSTR'), - multi=1 - ) - env.Append( BUILDERS = { 'Ts': tsbuilder } ) - qmbuilder = Builder( - action = SCons.Action.Action('$QT4_LRELEASECOM', cmdstr = '$QT4_LRELEASECOMSTR'), - src_suffix = '.ts', - suffix = '.qm', - single_source = True - ) - env.Append( BUILDERS = { 'Qm': qmbuilder } ) - - # Resource builder - def scanResources(node, env, path, arg): - # I've being careful on providing names relative to the qrc file - # If that was not needed that code could be simplified a lot - def recursiveFiles(basepath, path) : - result = [] - for item in os.listdir(os.path.join(basepath, path)) : - itemPath = os.path.join(path, item) - if os.path.isdir(os.path.join(basepath, itemPath)) : - result += recursiveFiles(basepath, itemPath) - else: - result.append(itemPath) - return result - contents = node.get_contents() - includes = [included[1] for included in qrcinclude_re.findall(contents)] - qrcpath = os.path.dirname(node.path) - dirs = [included for included in includes if os.path.isdir(os.path.join(qrcpath,included))] - # dirs need to include files recursively - for dir in dirs : - includes.remove(dir) - includes+=recursiveFiles(qrcpath,dir) - return includes - qrcscanner = SCons.Scanner.Scanner(name = 'qrcfile', - function = scanResources, - argument = None, - skeys = ['.qrc']) - qrcbuilder = Builder( - action = SCons.Action.Action('$QT4_RCCCOM', cmdstr = '$QT4_RCCCOMSTR'), - source_scanner = qrcscanner, - src_suffix = '$QT4_QRCSUFFIX', - suffix = '$QT4_QRCCXXSUFFIX', - prefix = '$QT4_QRCCXXPREFIX', - single_source = True - ) - env.Append( BUILDERS = { 'Qrc': qrcbuilder } ) - - # Interface builder - uic4builder = Builder( - action = SCons.Action.Action('$QT4_UICCOM', cmdstr = '$QT4_UICCOMSTR'), - src_suffix='$QT4_UISUFFIX', - suffix='$QT4_UICDECLSUFFIX', - prefix='$QT4_UICDECLPREFIX', - single_source = True - #TODO: Consider the uiscanner on new scons version - ) - env['BUILDERS']['Uic4'] = uic4builder - - # Metaobject builder - mocBld = Builder(action={}, prefix={}, suffix={}) - for h in header_extensions: - act = SCons.Action.Action('$QT4_MOCFROMHCOM', cmdstr = '$QT4_MOCFROMHCOMSTR') - mocBld.add_action(h, act) - mocBld.prefix[h] = '$QT4_MOCHPREFIX' - mocBld.suffix[h] = '$QT4_MOCHSUFFIX' - for cxx in cxx_suffixes: - act = SCons.Action.Action('$QT4_MOCFROMCXXCOM', cmdstr = '$QT4_MOCFROMCXXCOMSTR') - mocBld.add_action(cxx, act) - mocBld.prefix[cxx] = '$QT4_MOCCXXPREFIX' - mocBld.suffix[cxx] = '$QT4_MOCCXXSUFFIX' - env['BUILDERS']['Moc4'] = mocBld - - # er... no idea what that was for - static_obj, shared_obj = SCons.Tool.createObjBuilders(env) - static_obj.src_builder.append('Uic4') - shared_obj.src_builder.append('Uic4') - - # We use the emitters of Program / StaticLibrary / SharedLibrary - # to scan for moc'able files - # We can't refer to the builders directly, we have to fetch them - # as Environment attributes because that sets them up to be called - # correctly later by our emitter. - env.AppendUnique(PROGEMITTER =[AutomocStatic], - SHLIBEMITTER=[AutomocShared], - LIBEMITTER =[AutomocStatic], - # Of course, we need to link against the qt libraries - LIBPATH=["$QT4_LIBPATH"], - LIBS=['$QT4_LIB']) - - # TODO: Does dbusxml2cpp need an adapter - env.AddMethod(enable_modules, "EnableQt4Modules") + """Add Builders and construction variables for qt to an Environment.""" + + def locateQt4Command(env, command, qtdir) : + if len(qtdir) == 0 : + qtdir = "/usr" + if env["qt5"]: + suffixes = [ + '-qt5', + '-qt5.exe', + '5', + '5.exe', + '', + '.exe', + ] + else : + suffixes = [ + '-qt4', + '-qt4.exe', + '4', + '4.exe', + '', + '.exe', + ] + triedPaths = [] + for suffix in suffixes : + fullpath = os.path.join(qtdir,'bin',command + suffix) + if os.access(fullpath, os.X_OK) : + return fullpath + triedPaths.append(fullpath) + + fullpath = env.Detect([command+'-qt4', command+'4', command]) + if not (fullpath is None) : return fullpath + + raise Exception("Qt4 command '" + command + "' not found. Tried: " + ', '.join(triedPaths)) + + + CLVar = SCons.Util.CLVar + Action = SCons.Action.Action + Builder = SCons.Builder.Builder + splitext = SCons.Util.splitext + + env['QTDIR'] = _detect(env) + # TODO: 'Replace' should be 'SetDefault' +# env.SetDefault( + env.Replace( + QTDIR = _detect(env), + # TODO: This is not reliable to QTDIR value changes but needed in order to support '-qt4' variants + QT4_MOC = locateQt4Command(env,'moc', env['QTDIR']), + QT4_UIC = locateQt4Command(env,'uic', env['QTDIR']), + QT4_RCC = locateQt4Command(env,'rcc', env['QTDIR']), + QT4_LUPDATE = locateQt4Command(env,'lupdate', env['QTDIR']), + QT4_LRELEASE = locateQt4Command(env,'lrelease', env['QTDIR']), + QT4_LIB = '', # KLUDGE to avoid linking qt3 library + + QT4_AUTOSCAN = 1, # Should the qt tool try to figure out, which sources are to be moc'ed? + + # Some QT specific flags. I don't expect someone wants to + # manipulate those ... + QT4_UICFLAGS = CLVar(''), + QT4_MOCFROMHFLAGS = CLVar(''), + QT4_MOCFROMCXXFLAGS = CLVar('-i'), + QT4_QRCFLAGS = '--compress 9 --threshold 5', + + # suffixes/prefixes for the headers / sources to generate + QT4_UISUFFIX = '.ui', + QT4_UICDECLPREFIX = 'ui_', + QT4_UICDECLSUFFIX = '.h', + QT4_MOCHPREFIX = 'moc_', + QT4_MOCHSUFFIX = '$CXXFILESUFFIX', + QT4_MOCCXXPREFIX = '', + QT4_MOCCXXSUFFIX = '.moc', + QT4_QRCSUFFIX = '.qrc', + QT4_QRCCXXSUFFIX = '$CXXFILESUFFIX', + QT4_QRCCXXPREFIX = 'qrc_', + QT4_MOCCPPPATH = [], + QT4_MOCINCFLAGS = '$( ${_concat("-I", QT4_MOCCPPPATH, INCSUFFIX, __env__, RDirs)} $)', + + # Commands for the qt support ... + QT4_UICCOM = '$QT4_UIC $QT4_UICFLAGS -o $TARGET $SOURCE', + # FIXME: The -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED flag is a hack to work + # around an issue in Qt + # See https://bugreports.qt-project.org/browse/QTBUG-22829 + QT4_MOCFROMHCOM = '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMHFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE', + QT4_MOCFROMCXXCOM = [ + '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMCXXFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE', + Action(checkMocIncluded,None)], + QT4_LUPDATECOM = '$QT4_LUPDATE $SOURCE -ts $TARGET', + QT4_LRELEASECOM = '$QT4_LRELEASE -silent $SOURCE -qm $TARGET', + QT4_RCCCOM = '$QT4_RCC $QT4_QRCFLAGS -name $SOURCE $SOURCE -o $TARGET', + ) + if len(env["QTDIR"]) > 0 : + env.Replace(QT4_LIBPATH = os.path.join('$QTDIR', 'lib')) + + # Translation builder + tsbuilder = Builder( + action = SCons.Action.Action('$QT4_LUPDATECOM'), #,'$QT4_LUPDATECOMSTR'), + multi=1 + ) + env.Append( BUILDERS = { 'Ts': tsbuilder } ) + qmbuilder = Builder( + action = SCons.Action.Action('$QT4_LRELEASECOM', cmdstr = '$QT4_LRELEASECOMSTR'), + src_suffix = '.ts', + suffix = '.qm', + single_source = True + ) + env.Append( BUILDERS = { 'Qm': qmbuilder } ) + + # Resource builder + def scanResources(node, env, path, arg): + # I've being careful on providing names relative to the qrc file + # If that was not needed that code could be simplified a lot + def recursiveFiles(basepath, path) : + result = [] + for item in os.listdir(os.path.join(basepath, path)) : + itemPath = os.path.join(path, item) + if os.path.isdir(os.path.join(basepath, itemPath)) : + result += recursiveFiles(basepath, itemPath) + else: + result.append(itemPath) + return result + contents = node.get_contents() + includes = [included[1] for included in qrcinclude_re.findall(contents)] + qrcpath = os.path.dirname(node.path) + dirs = [included for included in includes if os.path.isdir(os.path.join(qrcpath,included))] + # dirs need to include files recursively + for dir in dirs : + includes.remove(dir) + includes+=recursiveFiles(qrcpath,dir) + return includes + qrcscanner = SCons.Scanner.Scanner(name = 'qrcfile', + function = scanResources, + argument = None, + skeys = ['.qrc']) + qrcbuilder = Builder( + action = SCons.Action.Action('$QT4_RCCCOM', cmdstr = '$QT4_RCCCOMSTR'), + source_scanner = qrcscanner, + src_suffix = '$QT4_QRCSUFFIX', + suffix = '$QT4_QRCCXXSUFFIX', + prefix = '$QT4_QRCCXXPREFIX', + single_source = True + ) + env.Append( BUILDERS = { 'Qrc': qrcbuilder } ) + + # Interface builder + uic4builder = Builder( + action = SCons.Action.Action('$QT4_UICCOM', cmdstr = '$QT4_UICCOMSTR'), + src_suffix='$QT4_UISUFFIX', + suffix='$QT4_UICDECLSUFFIX', + prefix='$QT4_UICDECLPREFIX', + single_source = True + #TODO: Consider the uiscanner on new scons version + ) + env['BUILDERS']['Uic4'] = uic4builder + + # Metaobject builder + mocBld = Builder(action={}, prefix={}, suffix={}) + for h in header_extensions: + act = SCons.Action.Action('$QT4_MOCFROMHCOM', cmdstr = '$QT4_MOCFROMHCOMSTR') + mocBld.add_action(h, act) + mocBld.prefix[h] = '$QT4_MOCHPREFIX' + mocBld.suffix[h] = '$QT4_MOCHSUFFIX' + for cxx in cxx_suffixes: + act = SCons.Action.Action('$QT4_MOCFROMCXXCOM', cmdstr = '$QT4_MOCFROMCXXCOMSTR') + mocBld.add_action(cxx, act) + mocBld.prefix[cxx] = '$QT4_MOCCXXPREFIX' + mocBld.suffix[cxx] = '$QT4_MOCCXXSUFFIX' + env['BUILDERS']['Moc4'] = mocBld + + # er... no idea what that was for + static_obj, shared_obj = SCons.Tool.createObjBuilders(env) + static_obj.src_builder.append('Uic4') + shared_obj.src_builder.append('Uic4') + + # We use the emitters of Program / StaticLibrary / SharedLibrary + # to scan for moc'able files + # We can't refer to the builders directly, we have to fetch them + # as Environment attributes because that sets them up to be called + # correctly later by our emitter. + env.AppendUnique(PROGEMITTER =[AutomocStatic], + SHLIBEMITTER=[AutomocShared], + LIBEMITTER =[AutomocStatic], + # Of course, we need to link against the qt libraries + LIBPATH=["$QT4_LIBPATH"], + LIBS=['$QT4_LIB']) + + # TODO: Does dbusxml2cpp need an adapter + env.AddMethod(enable_modules, "EnableQt4Modules") def enable_modules(self, modules, debug=False, crosscompiling=False, version='4') : - import sys - - validModules = [ - 'QtCore', - 'QtGui', - 'QtOpenGL', - 'Qt3Support', - 'QtAssistant', - 'QtScript', - 'QtDBus', - 'QtSql', - # The next modules have not been tested yet so, please - # maybe they require additional work on non Linux platforms - 'QtNetwork', - 'QtSvg', - 'QtTest', - 'QtXml', - 'QtXmlPatterns', - 'QtUiTools', - 'QtDesigner', - 'QtDesignerComponents', - 'QtWebKit', - 'QtHelp', - 'QtScript', - - # Qt5 modules - 'QtWidgets', - 'QtMultimedia', - 'QtWebKitWidgets', - 'QtWebChannel', - ] - if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling : - validModules += ['QtX11Extras'] - staticModules = [ - 'QtUiTools', - ] - invalidModules=[] - for module in modules: - if module not in validModules : - invalidModules.append(module) - if invalidModules : - raise Exception("Modules %s are not Qt4 modules. Valid Qt4 modules are: %s"% ( - str(invalidModules),str(validModules))) - - moduleDefines = { - 'QtScript' : ['QT_SCRIPT_LIB'], - 'QtSvg' : ['QT_SVG_LIB'], - 'Qt3Support' : ['QT_QT3SUPPORT_LIB','QT3_SUPPORT'], - 'QtSql' : ['QT_SQL_LIB'], - 'QtXml' : ['QT_XML_LIB'], - 'QtOpenGL' : ['QT_OPENGL_LIB'], - 'QtGui' : ['QT_GUI_LIB'], - 'QtWidgets' : ['QT_WIDGETS_LIB'], - 'QtWebKitWidgets' : [], - 'QtNetwork' : ['QT_NETWORK_LIB'], - 'QtCore' : ['QT_CORE_LIB'], - } - for module in modules : - try : self.AppendUnique(CPPDEFINES=moduleDefines[module]) - except: pass - debugSuffix = '' - - - include_flag = "-I" - if os.path.basename(self["CC"]) in ("gcc", "clang"): - include_flag = "-isystem" - - - if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling : - if self["qt"]: - # The user specified qt path in config.py and we are going to use the - # installation under that location. - UsePkgConfig = False - else: - # The user did not specify a qt path in config py and we are going to - # ask pkg-config for the correct flags. - UsePkgConfig = True - if not UsePkgConfig: - if debug : debugSuffix = '_debug' - if version == '4' : - self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "include", "phonon")]) - for module in modules : - module_str = module - if not version == '4' : - module_str = module_str.replace('Qt', 'Qt5') - self.AppendUnique(LIBS=[module_str+debugSuffix]) - self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")]) - self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include")]) - self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include", module)]) - self["QT4_MOCCPPPATH"] = self["CPPPATH"] - return - else: - test_conf = self.Configure() - modules_str = " ".join(modules) - if not version == '4' : - modules_str = modules_str.replace('Qt', 'Qt5') - - # Check if Qt is registered at pkg-config - ret = test_conf.TryAction('pkg-config --exists \'%s\'' % modules_str)[0] - if ret != 1: - test_conf.Finish() - raise Exception('Qt installation is missing packages. The following are required: %s' % modules_str) - return - test_conf.env.ParseConfig("pkg-config --cflags --libs " + modules_str) - self.AppendUnique(LIBS=test_conf.env["LIBS"], LIBPATH=test_conf.env["LIBPATH"], CPPPATH=test_conf.env["CPPPATH"]) - self["QT4_MOCCPPPATH"] = self["CPPPATH"] - test_conf.Finish() - return - - if sys.platform == "win32" or crosscompiling : - if crosscompiling: - transformedQtdir = transformToWinePath(self['QTDIR']) - self['QT4_MOC'] = "QTDIR=%s %s"%( transformedQtdir, self['QT4_MOC']) - self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")]) - try: modules.remove("QtDBus") - except: pass - if debug : debugSuffix = 'd' - if "QtAssistant" in modules: - self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include","QtAssistant")]) - modules.remove("QtAssistant") - modules.append("QtAssistantClient") - if version == '4' : - # FIXME: Phonon Hack - self.AppendUnique(LIBS=['phonon'+debugSuffix+version]) - self.AppendUnique(LIBS=[lib+debugSuffix+version for lib in modules if lib not in staticModules]) - else : - self.AppendUnique(LIBS=[lib.replace('Qt', 'Qt5') + debugSuffix for lib in modules if lib not in staticModules]) - self.PrependUnique(LIBS=[lib+debugSuffix for lib in modules if lib in staticModules]) - if 'QtOpenGL' in modules: - self.AppendUnique(LIBS=['opengl32']) - elif version == '5' : - self.Append(CPPDEFINES = ["QT_NO_OPENGL"]) - self.AppendUnique(CPPPATH=[ '$QTDIR/include/']) - self.AppendUnique(CPPPATH=[ '$QTDIR/include/'+module for module in modules]) - if crosscompiling : - self["QT4_MOCCPPPATH"] = [ - path.replace('$QTDIR', transformedQtdir) - for path in self['CPPPATH'] ] - else : - self["QT4_MOCCPPPATH"] = self["CPPPATH"] - self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) - self.PrependUnique(LIBS=["shell32"]) - return - - if sys.platform=="darwin" : - if debug : debugSuffix = 'd' - - if len(self["QTDIR"]) > 0 : - self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) - self.AppendUnique(LINKFLAGS="-F$QTDIR/lib") - self.AppendUnique(CPPFLAGS="-iframework$QTDIR/lib") - self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean! - - # FIXME: Phonon Hack - if version == '4' : - self.Append(LINKFLAGS=['-framework', "phonon"]) - - for module in modules : - if module in staticModules : - self.AppendUnique(LIBS=[module+debugSuffix]) # TODO: Add the debug suffix - self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")]) - else : - if len(self["QTDIR"]) > 0 : - self.Append(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", version, "Headers")]) - else : - self.Append(CPPFLAGS = [include_flag + os.path.join("/Library/Frameworks", module + ".framework", "Versions", version, "Headers")]) - self.Append(LINKFLAGS=['-framework', module]) - if 'QtOpenGL' in modules: - self.AppendUnique(LINKFLAGS="-F/System/Library/Frameworks") - self.Append(LINKFLAGS=['-framework', 'AGL']) #TODO ughly kludge to avoid quotes - self.Append(LINKFLAGS=['-framework', 'OpenGL']) - self["QT4_MOCCPPPATH"] = self["CPPPATH"] + import sys + + validModules = [ + 'QtCore', + 'QtGui', + 'QtOpenGL', + 'Qt3Support', + 'QtAssistant', + 'QtScript', + 'QtDBus', + 'QtSql', + # The next modules have not been tested yet so, please + # maybe they require additional work on non Linux platforms + 'QtNetwork', + 'QtSvg', + 'QtTest', + 'QtXml', + 'QtXmlPatterns', + 'QtUiTools', + 'QtDesigner', + 'QtDesignerComponents', + 'QtWebKit', + 'QtHelp', + 'QtScript', + + # Qt5 modules + 'QtWidgets', + 'QtMultimedia', + 'QtWebKitWidgets', + 'QtWebChannel', + ] + if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling : + validModules += ['QtX11Extras'] + staticModules = [ + 'QtUiTools', + ] + invalidModules=[] + for module in modules: + if module not in validModules : + invalidModules.append(module) + if invalidModules : + raise Exception("Modules %s are not Qt4 modules. Valid Qt4 modules are: %s"% ( + str(invalidModules),str(validModules))) + + moduleDefines = { + 'QtScript' : ['QT_SCRIPT_LIB'], + 'QtSvg' : ['QT_SVG_LIB'], + 'Qt3Support' : ['QT_QT3SUPPORT_LIB','QT3_SUPPORT'], + 'QtSql' : ['QT_SQL_LIB'], + 'QtXml' : ['QT_XML_LIB'], + 'QtOpenGL' : ['QT_OPENGL_LIB'], + 'QtGui' : ['QT_GUI_LIB'], + 'QtWidgets' : ['QT_WIDGETS_LIB'], + 'QtWebKitWidgets' : [], + 'QtNetwork' : ['QT_NETWORK_LIB'], + 'QtCore' : ['QT_CORE_LIB'], + } + for module in modules : + try : self.AppendUnique(CPPDEFINES=moduleDefines[module]) + except: pass + debugSuffix = '' + + + include_flag = "-I" + if os.path.basename(self["CC"]) in ("gcc", "clang"): + include_flag = "-isystem" + + + if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling : + if self["qt"]: + # The user specified qt path in config.py and we are going to use the + # installation under that location. + UsePkgConfig = False + else: + # The user did not specify a qt path in config py and we are going to + # ask pkg-config for the correct flags. + UsePkgConfig = True + if not UsePkgConfig: + if debug : debugSuffix = '_debug' + if version == '4' : + self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "include", "phonon")]) + for module in modules : + module_str = module + if not version == '4' : + module_str = module_str.replace('Qt', 'Qt5') + self.AppendUnique(LIBS=[module_str+debugSuffix]) + self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")]) + self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include")]) + self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include", module)]) + self["QT4_MOCCPPPATH"] = self["CPPPATH"] + return + else: + test_conf = self.Configure() + modules_str = " ".join(modules) + if not version == '4' : + modules_str = modules_str.replace('Qt', 'Qt5') + + # Check if Qt is registered at pkg-config + ret = test_conf.TryAction('pkg-config --exists \'%s\'' % modules_str)[0] + if ret != 1: + test_conf.Finish() + raise Exception('Qt installation is missing packages. The following are required: %s' % modules_str) + return + test_conf.env.ParseConfig("pkg-config --cflags --libs " + modules_str) + self.AppendUnique(LIBS=test_conf.env["LIBS"], LIBPATH=test_conf.env["LIBPATH"], CPPPATH=test_conf.env["CPPPATH"]) + self["QT4_MOCCPPPATH"] = self["CPPPATH"] + test_conf.Finish() + return + + if sys.platform == "win32" or crosscompiling : + if crosscompiling: + transformedQtdir = transformToWinePath(self['QTDIR']) + self['QT4_MOC'] = "QTDIR=%s %s"%( transformedQtdir, self['QT4_MOC']) + self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")]) + try: modules.remove("QtDBus") + except: pass + if debug : debugSuffix = 'd' + if "QtAssistant" in modules: + self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include","QtAssistant")]) + modules.remove("QtAssistant") + modules.append("QtAssistantClient") + if version == '4' : + # FIXME: Phonon Hack + self.AppendUnique(LIBS=['phonon'+debugSuffix+version]) + self.AppendUnique(LIBS=[lib+debugSuffix+version for lib in modules if lib not in staticModules]) + else : + self.AppendUnique(LIBS=[lib.replace('Qt', 'Qt5') + debugSuffix for lib in modules if lib not in staticModules]) + self.PrependUnique(LIBS=[lib+debugSuffix for lib in modules if lib in staticModules]) + if 'QtOpenGL' in modules: + self.AppendUnique(LIBS=['opengl32']) + elif version == '5' : + self.Append(CPPDEFINES = ["QT_NO_OPENGL"]) + self.AppendUnique(CPPPATH=[ '$QTDIR/include/']) + self.AppendUnique(CPPPATH=[ '$QTDIR/include/'+module for module in modules]) + if crosscompiling : + self["QT4_MOCCPPPATH"] = [ + path.replace('$QTDIR', transformedQtdir) + for path in self['CPPPATH'] ] + else : + self["QT4_MOCCPPPATH"] = self["CPPPATH"] + self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) + self.PrependUnique(LIBS=["shell32"]) + return + + if sys.platform=="darwin" : + if debug : debugSuffix = 'd' + + if len(self["QTDIR"]) > 0 : + self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) + self.AppendUnique(LINKFLAGS="-F$QTDIR/lib") + self.AppendUnique(CPPFLAGS="-iframework$QTDIR/lib") + self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean! + + # FIXME: Phonon Hack + if version == '4' : + self.Append(LINKFLAGS=['-framework', "phonon"]) + + for module in modules : + if module in staticModules : + self.AppendUnique(LIBS=[module+debugSuffix]) # TODO: Add the debug suffix + self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")]) + else : + if len(self["QTDIR"]) > 0 : + self.Append(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", version, "Headers")]) + else : + self.Append(CPPFLAGS = [include_flag + os.path.join("/Library/Frameworks", module + ".framework", "Versions", version, "Headers")]) + self.Append(LINKFLAGS=['-framework', module]) + if 'QtOpenGL' in modules: + self.AppendUnique(LINKFLAGS="-F/System/Library/Frameworks") + self.Append(LINKFLAGS=['-framework', 'AGL']) #TODO ughly kludge to avoid quotes + self.Append(LINKFLAGS=['-framework', 'OpenGL']) + self["QT4_MOCCPPPATH"] = self["CPPPATH"] def exists(env): - return _detect(env) + return _detect(env) diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py index b290125..89f8963 100644 --- a/BuildTools/SCons/Tools/textfile.py +++ b/BuildTools/SCons/Tools/textfile.py @@ -25,23 +25,23 @@ __doc__ = """ Textfile/Substfile builder for SCons. - Create file 'target' which typically is a textfile. The 'source' - may be any combination of strings, Nodes, or lists of same. A - 'linesep' will be put between any part written and defaults to - os.linesep. - - The only difference between the Textfile builder and the Substfile - builder is that strings are converted to Value() nodes for the - former and File() nodes for the latter. To insert files in the - former or strings in the latter, wrap them in a File() or Value(), - respectively. - - The values of SUBST_DICT first have any construction variables - expanded (its keys are not expanded). If a value of SUBST_DICT is - a python callable function, it is called and the result is expanded - as the value. Values are substituted in a "random" order; if any - substitution could be further expanded by another subsitition, it - is unpredictible whether the expansion will occur. + Create file 'target' which typically is a textfile. The 'source' + may be any combination of strings, Nodes, or lists of same. A + 'linesep' will be put between any part written and defaults to + os.linesep. + + The only difference between the Textfile builder and the Substfile + builder is that strings are converted to Value() nodes for the + former and File() nodes for the latter. To insert files in the + former or strings in the latter, wrap them in a File() or Value(), + respectively. + + The values of SUBST_DICT first have any construction variables + expanded (its keys are not expanded). If a value of SUBST_DICT is + a python callable function, it is called and the result is expanded + as the value. Values are substituted in a "random" order; if any + substitution could be further expanded by another subsitition, it + is unpredictible whether the expansion will occur. """ __revision__ = "src/engine/SCons/Tool/textfile.py 5357 2011/09/09 21:31:03 bdeegan" @@ -56,117 +56,117 @@ from SCons.Node.Python import Value from SCons.Util import is_String, is_Sequence, is_Dict def _do_subst(node, subs): - """ - Fetch the node contents and replace all instances of the keys with - their values. For example, if subs is - {'%VERSION%': '1.2345', '%BASE%': 'MyProg', '%prefix%': '/bin'}, - then all instances of %VERSION% in the file will be replaced with - 1.2345 and so forth. - """ - contents = node.get_text_contents() - if not subs: return contents - for (k,v) in subs: - contents = re.sub(k, v, contents) - return contents + """ + Fetch the node contents and replace all instances of the keys with + their values. For example, if subs is + {'%VERSION%': '1.2345', '%BASE%': 'MyProg', '%prefix%': '/bin'}, + then all instances of %VERSION% in the file will be replaced with + 1.2345 and so forth. + """ + contents = node.get_text_contents() + if not subs: return contents + for (k,v) in subs: + contents = re.sub(k, v, contents) + return contents def _action(target, source, env): - # prepare the line separator - linesep = env['LINESEPARATOR'] - if linesep is None: - linesep = os.linesep - elif is_String(linesep): - pass - elif isinstance(linesep, Value): - linesep = linesep.get_text_contents() - else: - raise SCons.Errors.UserError( - 'unexpected type/class for LINESEPARATOR: %s' - % repr(linesep), None) - - # create a dictionary to use for the substitutions - if 'SUBST_DICT' not in env: - subs = None # no substitutions - else: - d = env['SUBST_DICT'] - if is_Dict(d): - d = list(d.items()) - elif is_Sequence(d): - pass - else: - raise SCons.Errors.UserError('SUBST_DICT must be dict or sequence') - subs = [] - for (k,v) in d: - if callable(v): - v = v() - if is_String(v): - v = env.subst(v) - else: - v = str(v) - subs.append((k,v)) - - # write the file - try: - fd = open(target[0].get_path(), "wb") - except (OSError,IOError), e: - raise SCons.Errors.UserError("Can't write target file %s" % target[0]) - # separate lines by 'linesep' only if linesep is not empty - lsep = None - for s in source: - if lsep: fd.write(lsep) - fd.write(_do_subst(s, subs)) - lsep = linesep - fd.close() + # prepare the line separator + linesep = env['LINESEPARATOR'] + if linesep is None: + linesep = os.linesep + elif is_String(linesep): + pass + elif isinstance(linesep, Value): + linesep = linesep.get_text_contents() + else: + raise SCons.Errors.UserError( + 'unexpected type/class for LINESEPARATOR: %s' + % repr(linesep), None) + + # create a dictionary to use for the substitutions + if 'SUBST_DICT' not in env: + subs = None # no substitutions + else: + d = env['SUBST_DICT'] + if is_Dict(d): + d = list(d.items()) + elif is_Sequence(d): + pass + else: + raise SCons.Errors.UserError('SUBST_DICT must be dict or sequence') + subs = [] + for (k,v) in d: + if callable(v): + v = v() + if is_String(v): + v = env.subst(v) + else: + v = str(v) + subs.append((k,v)) + + # write the file + try: + fd = open(target[0].get_path(), "wb") + except (OSError,IOError), e: + raise SCons.Errors.UserError("Can't write target file %s" % target[0]) + # separate lines by 'linesep' only if linesep is not empty + lsep = None + for s in source: + if lsep: fd.write(lsep) + fd.write(_do_subst(s, subs)) + lsep = linesep + fd.close() def _strfunc(target, source, env): - return "Creating '%s'" % target[0] + return "Creating '%s'" % target[0] def _convert_list_R(newlist, sources): - for elem in sources: - if is_Sequence(elem): - _convert_list_R(newlist, elem) - elif isinstance(elem, Node): - newlist.append(elem) - else: - newlist.append(Value(elem)) + for elem in sources: + if is_Sequence(elem): + _convert_list_R(newlist, elem) + elif isinstance(elem, Node): + newlist.append(elem) + else: + newlist.append(Value(elem)) def _convert_list(target, source, env): - if len(target) != 1: - raise SCons.Errors.UserError("Only one target file allowed") - newlist = [] - _convert_list_R(newlist, source) - return target, newlist + if len(target) != 1: + raise SCons.Errors.UserError("Only one target file allowed") + newlist = [] + _convert_list_R(newlist, source) + return target, newlist _common_varlist = ['SUBST_DICT', 'LINESEPARATOR'] _text_varlist = _common_varlist + ['TEXTFILEPREFIX', 'TEXTFILESUFFIX'] _text_builder = SCons.Builder.Builder( - action = SCons.Action.Action(_action, _strfunc, varlist = _text_varlist), - source_factory = Value, - emitter = _convert_list, - prefix = '$TEXTFILEPREFIX', - suffix = '$TEXTFILESUFFIX', - ) + action = SCons.Action.Action(_action, _strfunc, varlist = _text_varlist), + source_factory = Value, + emitter = _convert_list, + prefix = '$TEXTFILEPREFIX', + suffix = '$TEXTFILESUFFIX', + ) _subst_varlist = _common_varlist + ['SUBSTFILEPREFIX', 'TEXTFILESUFFIX'] _subst_builder = SCons.Builder.Builder( - action = SCons.Action.Action(_action, _strfunc, varlist = _subst_varlist), - source_factory = SCons.Node.FS.File, - emitter = _convert_list, - prefix = '$SUBSTFILEPREFIX', - suffix = '$SUBSTFILESUFFIX', - src_suffix = ['.in'], - ) + action = SCons.Action.Action(_action, _strfunc, varlist = _subst_varlist), + source_factory = SCons.Node.FS.File, + emitter = _convert_list, + prefix = '$SUBSTFILEPREFIX', + suffix = '$SUBSTFILESUFFIX', + src_suffix = ['.in'], + ) def generate(env): - env['LINESEPARATOR'] = os.linesep - env['BUILDERS']['MyTextfile'] = _text_builder - env['TEXTFILEPREFIX'] = '' - env['TEXTFILESUFFIX'] = '.txt' - env['BUILDERS']['MySubstfile'] = _subst_builder - env['SUBSTFILEPREFIX'] = '' - env['SUBSTFILESUFFIX'] = '' + env['LINESEPARATOR'] = os.linesep + env['BUILDERS']['MyTextfile'] = _text_builder + env['TEXTFILEPREFIX'] = '' + env['TEXTFILESUFFIX'] = '.txt' + env['BUILDERS']['MySubstfile'] = _subst_builder + env['SUBSTFILEPREFIX'] = '' + env['SUBSTFILESUFFIX'] = '' def exists(env): - return 1 + return 1 # Local Variables: # tab-width:4 diff --git a/BuildTools/SCons/Tools/wix.py b/BuildTools/SCons/Tools/wix.py index 705d249..907b6d9 100644 --- a/BuildTools/SCons/Tools/wix.py +++ b/BuildTools/SCons/Tools/wix.py @@ -3,49 +3,49 @@ import SCons.Util from subprocess import call def generate(env) : - wixPath = env.get("wix_bindir", "") - if len(wixPath) > 0 and wixPath[-1] != "\\": - wixPath += "\\" - env['WIX_HEAT'] = wixPath + 'heat.exe' - env['WIX_HEAT_OPTIONS'] = '-nologo -ag -sfrag -suid -template fragment -dr ProgramFilesFolder' - env['WIX_CANDLE'] = wixPath + 'candle.exe' - env['WIX_CANDLE_OPTIONS'] = '-nologo' - env['WIX_LIGHT'] = wixPath + 'light.exe' - env['WIX_LIGHT_OPTIONS'] = '-nologo -ext WixUIExtension' - - def WiX_IncludeScanner(source, env, path, arg): - wixIncludeRegexp = re.compile(r'^\s*\<\?include (\S+.wxs)\s*\?\>\S*', re.M) - contents = source.get_contents() - includes = wixIncludeRegexp.findall(contents) - return [ "" + include for include in includes ] - - heat_builder = SCons.Builder.Builder( - action = '"$WIX_HEAT" dir "$WIX_SOURCE_OBJECT_DIR" -cg Files $WIX_HEAT_OPTIONS -o ${TARGET} -t Swift\\Packaging\\WiX\\include.xslt', - suffix = '.wxi') - - - candle_scanner = env.Scanner(name = 'wixincludefile', - function = WiX_IncludeScanner, - argument = None, - skeys = ['.wxs']) - - candle_builder = SCons.Builder.Builder( - action = '"$WIX_CANDLE" $WIX_CANDLE_OPTIONS ${SOURCES} -o ${TARGET}', - src_suffix = '.wxs', - suffix = '.wixobj', - source_scanner = candle_scanner, - src_builder = heat_builder) - - - light_builder = SCons.Builder.Builder( - action = '"$WIX_LIGHT" $WIX_LIGHT_OPTIONS -b "$WIX_SOURCE_OBJECT_DIR" ${SOURCES} -o ${TARGET}', - src_suffix = '.wixobj', - src_builder = candle_builder) - - env['BUILDERS']['WiX_Heat'] = heat_builder - env['BUILDERS']['WiX_Candle'] = candle_builder - env['BUILDERS']['WiX_Light'] = light_builder + wixPath = env.get("wix_bindir", "") + if len(wixPath) > 0 and wixPath[-1] != "\\": + wixPath += "\\" + env['WIX_HEAT'] = wixPath + 'heat.exe' + env['WIX_HEAT_OPTIONS'] = '-nologo -ag -sfrag -suid -template fragment -dr ProgramFilesFolder' + env['WIX_CANDLE'] = wixPath + 'candle.exe' + env['WIX_CANDLE_OPTIONS'] = '-nologo' + env['WIX_LIGHT'] = wixPath + 'light.exe' + env['WIX_LIGHT_OPTIONS'] = '-nologo -ext WixUIExtension' + + def WiX_IncludeScanner(source, env, path, arg): + wixIncludeRegexp = re.compile(r'^\s*\<\?include (\S+.wxs)\s*\?\>\S*', re.M) + contents = source.get_contents() + includes = wixIncludeRegexp.findall(contents) + return [ "" + include for include in includes ] + + heat_builder = SCons.Builder.Builder( + action = '"$WIX_HEAT" dir "$WIX_SOURCE_OBJECT_DIR" -cg Files $WIX_HEAT_OPTIONS -o ${TARGET} -t Swift\\Packaging\\WiX\\include.xslt', + suffix = '.wxi') + + + candle_scanner = env.Scanner(name = 'wixincludefile', + function = WiX_IncludeScanner, + argument = None, + skeys = ['.wxs']) + + candle_builder = SCons.Builder.Builder( + action = '"$WIX_CANDLE" $WIX_CANDLE_OPTIONS ${SOURCES} -o ${TARGET}', + src_suffix = '.wxs', + suffix = '.wixobj', + source_scanner = candle_scanner, + src_builder = heat_builder) + + + light_builder = SCons.Builder.Builder( + action = '"$WIX_LIGHT" $WIX_LIGHT_OPTIONS -b "$WIX_SOURCE_OBJECT_DIR" ${SOURCES} -o ${TARGET}', + src_suffix = '.wixobj', + src_builder = candle_builder) + + env['BUILDERS']['WiX_Heat'] = heat_builder + env['BUILDERS']['WiX_Candle'] = candle_builder + env['BUILDERS']['WiX_Light'] = light_builder def exists(env) : - return True + return True diff --git a/BuildTools/SCons/Version.py b/BuildTools/SCons/Version.py index 6482664..d34c2a7 100644 --- a/BuildTools/SCons/Version.py +++ b/BuildTools/SCons/Version.py @@ -1,68 +1,68 @@ import subprocess, os, datetime, re, os.path def getGitBuildVersion(root, project) : - tag = git("describe --tags --exact --match \"" + project + "-*\"", root) - if tag : - return tag.rstrip()[len(project)+1:] - tag = git("describe --tags --match \"" + project + "-*\"", root) - if tag : - m = re.match(project + "-(.*)-(.*)-(.*)", tag) - if m : - return m.group(1) + "-dev" + m.group(2) - return None + tag = git("describe --tags --exact --match \"" + project + "-*\"", root) + if tag : + return tag.rstrip()[len(project)+1:] + tag = git("describe --tags --match \"" + project + "-*\"", root) + if tag : + m = re.match(project + "-(.*)-(.*)-(.*)", tag) + if m : + return m.group(1) + "-dev" + m.group(2) + return None def git(cmd, root) : - full_cmd = "git " + cmd - p = subprocess.Popen(full_cmd, cwd=root, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) - gitVersion = p.stdout.read() - # error = p.stderr.read() - # if error: - # print "Git error: " + error - p.stdin.close() - if p.wait() == 0 : - return gitVersion - return None + full_cmd = "git " + cmd + p = subprocess.Popen(full_cmd, cwd=root, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt")) + gitVersion = p.stdout.read() + # error = p.stderr.read() + # if error: + # print "Git error: " + error + p.stdin.close() + if p.wait() == 0 : + return gitVersion + return None def getBuildVersion(root, project) : - versionFilename = os.path.join(root, "VERSION." + project) - if os.path.isfile(versionFilename) : - f = open(versionFilename) - version = f.read().strip() - f.close() - return version + versionFilename = os.path.join(root, "VERSION." + project) + if os.path.isfile(versionFilename) : + f = open(versionFilename) + version = f.read().strip() + f.close() + return version - gitVersion = getGitBuildVersion(root, project) - if gitVersion : - return gitVersion + gitVersion = getGitBuildVersion(root, project) + if gitVersion : + return gitVersion - return datetime.date.today().strftime("%Y%m%d") + return datetime.date.today().strftime("%Y%m%d") def convertToWindowsVersion(version) : - version_match = re.match("(\d+)\.(\d+)(.*)", version) - major = version_match and int(version_match.group(1)) or 0 - minor = version_match and int(version_match.group(2)) or 0 - if version_match and len(version_match.group(3)) == 0 : - patch = 60000 - else : - match = re.match("^beta(\d+)(.*)", version_match.group(3)) - build_string = "" - if match : - patch = 1000*int(match.group(1)) - build_string = match.group(2) - else : - rc_match = re.match("^rc(\d+)(.*)", version_match.group(3)) - if rc_match : - patch = 10000*int(rc_match.group(1)) - build_string = rc_match.group(2) - else : - patch = 0 - alpha_match = re.match("^alpha(.*)", version_match.group(3)) - if alpha_match : - build_string = alpha_match.group(1) + version_match = re.match("(\d+)\.(\d+)(.*)", version) + major = version_match and int(version_match.group(1)) or 0 + minor = version_match and int(version_match.group(2)) or 0 + if version_match and len(version_match.group(3)) == 0 : + patch = 60000 + else : + match = re.match("^beta(\d+)(.*)", version_match.group(3)) + build_string = "" + if match : + patch = 1000*int(match.group(1)) + build_string = match.group(2) + else : + rc_match = re.match("^rc(\d+)(.*)", version_match.group(3)) + if rc_match : + patch = 10000*int(rc_match.group(1)) + build_string = rc_match.group(2) + else : + patch = 0 + alpha_match = re.match("^alpha(.*)", version_match.group(3)) + if alpha_match : + build_string = alpha_match.group(1) - if len(build_string) > 0 : - build_match = re.match("^-dev(\d+)", build_string) - if build_match : - patch += int(build_match.group(1)) + if len(build_string) > 0 : + build_match = re.match("^-dev(\d+)", build_string) + if build_match : + patch += int(build_match.group(1)) - return (major, minor, patch) + return (major, minor, patch) diff --git a/BuildTools/UpdateDebianChangelog.py b/BuildTools/UpdateDebianChangelog.py index 0693461..1d0e3ea 100755 --- a/BuildTools/UpdateDebianChangelog.py +++ b/BuildTools/UpdateDebianChangelog.py @@ -14,28 +14,28 @@ project = "" last_version = "" m = re.match("([\w-]+) \((.*)-\d+\)", last_version_line) if m : - project = m.group(1) - last_version = m.group(2) + project = m.group(1) + last_version = m.group(2) if project == "" : - project="swift-im" + project="swift-im" if "dev" in version : - distribution = "development" + distribution = "development" elif "beta" in version or "rc" in version : - distribution = "beta development" + distribution = "beta development" else : - distribution = "release beta development" + distribution = "release beta development" if last_version != version : - changelog = open(sys.argv[1]) - changelog_data = changelog.read() - changelog.close() - changelog = open(sys.argv[1], "w") - changelog.write(project + " (" + version + "-1)" + " " + distribution + "; urgency=low\n\n") - changelog.write(" * Upstream development snapshot\n\n") - changelog.write(" -- Swift Package Maintainer <packages@swift.im> " + email.utils.formatdate() + "\n") - changelog.write("\n") - changelog.write(changelog_data) - changelog.close() + changelog = open(sys.argv[1]) + changelog_data = changelog.read() + changelog.close() + changelog = open(sys.argv[1], "w") + changelog.write(project + " (" + version + "-1)" + " " + distribution + "; urgency=low\n\n") + changelog.write(" * Upstream development snapshot\n\n") + changelog.write(" -- Swift Package Maintainer <packages@swift.im> " + email.utils.formatdate() + "\n") + changelog.write("\n") + changelog.write(changelog_data) + changelog.close() diff --git a/BuildTools/scons2ninja.py b/BuildTools/scons2ninja.py index 5d084cd..91cd3cc 100755 --- a/BuildTools/scons2ninja.py +++ b/BuildTools/scons2ninja.py @@ -24,202 +24,202 @@ SCONS_ARGS = ' '.join(sys.argv[1:]) BINARY_FLAGS = ["-framework", "-arch", "-x", "--output-format", "-isystem", "-include"] if sys.platform == 'win32' : - LIB_PREFIX = "" - LIB_SUFFIX = "" - EXE_SUFFIX = ".exe" + LIB_PREFIX = "" + LIB_SUFFIX = "" + EXE_SUFFIX = ".exe" else : - LIB_PREFIX = "lib" - LIB_SUFFIX = ".a" - EXE_SUFFIX = "" + LIB_PREFIX = "lib" + LIB_SUFFIX = ".a" + EXE_SUFFIX = "" def is_regexp(x) : - return 'match' in dir(x) + return 'match' in dir(x) def is_list(l) : - return type(l) is list + return type(l) is list def escape(s) : - return s.replace(' ', '$ ').replace(':', '$:') + return s.replace(' ', '$ ').replace(':', '$:') def quote_spaces(s) : - if ' ' in s : - return '"' + s + '"' - else : - return s + if ' ' in s : + return '"' + s + '"' + else : + return s def to_list(l) : - if not l : - return [] - if is_list(l) : - return l - return [l] + if not l : + return [] + if is_list(l) : + return l + return [l] def partition(l, f) : - x = [] - y = [] - for v in l : - if f(v) : - x.append(v) - else : - y.append(v) - return (x, y) + x = [] + y = [] + for v in l : + if f(v) : + x.append(v) + else : + y.append(v) + return (x, y) def get_unary_flags(prefix, flags) : - return [x[len(prefix):] for x in flags if x.lower().startswith(prefix.lower())] + return [x[len(prefix):] for x in flags if x.lower().startswith(prefix.lower())] def extract_unary_flags(prefix, flags) : - f1, f2 = partition(flags, lambda x : x.lower().startswith(prefix.lower())) - return ([f[len(prefix):] for f in f1], f2) + f1, f2 = partition(flags, lambda x : x.lower().startswith(prefix.lower())) + return ([f[len(prefix):] for f in f1], f2) def extract_unary_flag(prefix, flags) : - flag, flags = extract_unary_flags(prefix, flags) - return (flag[0], flags) + flag, flags = extract_unary_flags(prefix, flags) + return (flag[0], flags) def extract_binary_flag(prefix, flags) : - i = flags.index(prefix) - flag = flags[i + 1] - del flags[i] - del flags[i] - return (flag, flags) + i = flags.index(prefix) + flag = flags[i + 1] + del flags[i] + del flags[i] + return (flag, flags) def get_non_flags(flags) : - skip = False - result = [] - for f in flags : - if skip : - skip = False - elif f in BINARY_FLAGS : - skip = True - elif not f.startswith("/") and not f.startswith("-") : - result.append(f) - return result + skip = False + result = [] + for f in flags : + if skip : + skip = False + elif f in BINARY_FLAGS : + skip = True + elif not f.startswith("/") and not f.startswith("-") : + result.append(f) + return result def extract_non_flags(flags) : - non_flags = get_non_flags(flags) - return (non_flags, filter(lambda x : x not in non_flags, flags)) + non_flags = get_non_flags(flags) + return (non_flags, filter(lambda x : x not in non_flags, flags)) def get_dependencies(target, build_targets) : - result = [] - queue = list(dependencies.get(target, [])) - while len(queue) > 0 : - n = queue.pop() - # Filter out Value() results - if n in build_targets or os.path.exists(n) : - result.append(n) - queue += list(dependencies.get(n, [])) - return result + result = [] + queue = list(dependencies.get(target, [])) + while len(queue) > 0 : + n = queue.pop() + # Filter out Value() results + if n in build_targets or os.path.exists(n) : + result.append(n) + queue += list(dependencies.get(n, [])) + return result def get_built_libs(libs, libpaths, outputs) : - canonical_outputs = [os.path.abspath(p) for p in outputs] - result = [] - for libpath in libpaths : - for lib in libs : - lib_libpath = os.path.join(libpath, LIB_PREFIX + lib + LIB_SUFFIX) - if os.path.abspath(lib_libpath) in canonical_outputs : - result.append(lib_libpath) - return result + canonical_outputs = [os.path.abspath(p) for p in outputs] + result = [] + for libpath in libpaths : + for lib in libs : + lib_libpath = os.path.join(libpath, LIB_PREFIX + lib + LIB_SUFFIX) + if os.path.abspath(lib_libpath) in canonical_outputs : + result.append(lib_libpath) + return result def parse_tool_command(line) : - command = shlex.split(line, False, False if sys.platform == 'win32' else True) - flags = command[1:] - tool = os.path.splitext(os.path.basename(command[0]))[0] - if tool.startswith('clang++') or tool.startswith('g++') : - tool = "cxx" - elif tool.startswith('clang') or tool.startswith('gcc') : - tool = "cc" - if tool in ["cc", "cxx"] and not "-c" in flags : - tool = "glink" - tool = tool.replace('-qt4', '') - return tool, command, flags + command = shlex.split(line, False, False if sys.platform == 'win32' else True) + flags = command[1:] + tool = os.path.splitext(os.path.basename(command[0]))[0] + if tool.startswith('clang++') or tool.startswith('g++') : + tool = "cxx" + elif tool.startswith('clang') or tool.startswith('gcc') : + tool = "cc" + if tool in ["cc", "cxx"] and not "-c" in flags : + tool = "glink" + tool = tool.replace('-qt4', '') + return tool, command, flags def rglob(pattern, root = '.') : - return [os.path.join(path, f) for path, dirs, files in os.walk(root) for f in fnmatch.filter(files, pattern)] + return [os.path.join(path, f) for path, dirs, files in os.walk(root) for f in fnmatch.filter(files, pattern)] ################################################################################ # Helper for building Ninja files ################################################################################ class NinjaBuilder : - def __init__(self) : - self._header = "" - self.variables = "" - self.rules = "" - self._build = "" - self.pools = "" - self._flags = {} - self.targets = [] - - def header(self, text) : - self._header += text + "\n" - - def rule(self, name, **kwargs) : - self.rules += "rule " + name + "\n" - for k, v in kwargs.iteritems() : - self.rules += " " + str(k) + " = " + str(v) + "\n" - self.rules += "\n" - - def pool(self, name, **kwargs) : - self.pools += "pool " + name + "\n" - for k, v in kwargs.iteritems() : - self.pools += " " + str(k) + " = " + str(v) + "\n" - self.pools += "\n" - - def variable(self, name, value) : - self.variables += str(name) + " = " + str(value) + "\n" - - def build(self, target, rule, sources = None, **kwargs) : - self._build += "build " + self.to_string(target) + ": " + rule - if sources : - self._build += " " + self.to_string(sources) - if 'deps' in kwargs and kwargs['deps'] : - self._build += " | " + self.to_string(kwargs["deps"]) - if 'order_deps' in kwargs : - self._build += " || " + self.to_string(kwargs['order_deps']) - self._build += "\n" - for var, value in kwargs.iteritems() : - if var in ['deps', 'order_deps'] : - continue - value = self.to_string(value, quote = True) - if var.endswith("flags") : - value = self.get_flags_variable(var, value) - self._build += " " + var + " = " + value + "\n" - self.targets += to_list(target) - - def header_targets(self) : - return [x for x in self.targets if x.endswith('.h') or x.endswith('.hh')] - - def serialize(self) : - result = "" - result += self._header + "\n" - result += self.variables + "\n" - for prefix in self._flags.values() : - for k, v in prefix.iteritems() : - result += v + " = " + k + "\n" - result += "\n" - result += self.pools + "\n" - result += self.rules + "\n" - result += self._build + "\n" - return result - - def to_string(self, lst, quote = False) : - if is_list(lst) : - if quote : - return ' '.join([quote_spaces(x) for x in lst]) - else : - return ' '.join([escape(x) for x in lst]) - if is_regexp(lst) : - return ' '.join([escape(x) for x in self.targets if lst.match(x)]) - return escape(lst) - - def get_flags_variable(self, flags_type, flags) : - if len(flags) == 0 : - return '' - if flags_type not in self._flags : - self._flags[flags_type] = {} - type_flags = self._flags[flags_type] - if flags not in type_flags : - type_flags[flags] = flags_type + "_" + str(len(type_flags)) - return "$" + type_flags[flags] + def __init__(self) : + self._header = "" + self.variables = "" + self.rules = "" + self._build = "" + self.pools = "" + self._flags = {} + self.targets = [] + + def header(self, text) : + self._header += text + "\n" + + def rule(self, name, **kwargs) : + self.rules += "rule " + name + "\n" + for k, v in kwargs.iteritems() : + self.rules += " " + str(k) + " = " + str(v) + "\n" + self.rules += "\n" + + def pool(self, name, **kwargs) : + self.pools += "pool " + name + "\n" + for k, v in kwargs.iteritems() : + self.pools += " " + str(k) + " = " + str(v) + "\n" + self.pools += "\n" + + def variable(self, name, value) : + self.variables += str(name) + " = " + str(value) + "\n" + + def build(self, target, rule, sources = None, **kwargs) : + self._build += "build " + self.to_string(target) + ": " + rule + if sources : + self._build += " " + self.to_string(sources) + if 'deps' in kwargs and kwargs['deps'] : + self._build += " | " + self.to_string(kwargs["deps"]) + if 'order_deps' in kwargs : + self._build += " || " + self.to_string(kwargs['order_deps']) + self._build += "\n" + for var, value in kwargs.iteritems() : + if var in ['deps', 'order_deps'] : + continue + value = self.to_string(value, quote = True) + if var.endswith("flags") : + value = self.get_flags_variable(var, value) + self._build += " " + var + " = " + value + "\n" + self.targets += to_list(target) + + def header_targets(self) : + return [x for x in self.targets if x.endswith('.h') or x.endswith('.hh')] + + def serialize(self) : + result = "" + result += self._header + "\n" + result += self.variables + "\n" + for prefix in self._flags.values() : + for k, v in prefix.iteritems() : + result += v + " = " + k + "\n" + result += "\n" + result += self.pools + "\n" + result += self.rules + "\n" + result += self._build + "\n" + return result + + def to_string(self, lst, quote = False) : + if is_list(lst) : + if quote : + return ' '.join([quote_spaces(x) for x in lst]) + else : + return ' '.join([escape(x) for x in lst]) + if is_regexp(lst) : + return ' '.join([escape(x) for x in self.targets if lst.match(x)]) + return escape(lst) + + def get_flags_variable(self, flags_type, flags) : + if len(flags) == 0 : + return '' + if flags_type not in self._flags : + self._flags[flags_type] = {} + type_flags = self._flags[flags_type] + if flags not in type_flags : + type_flags[flags] = flags_type + "_" + str(len(type_flags)) + return "$" + type_flags[flags] ################################################################################ @@ -231,7 +231,7 @@ scons_cmd = "scons" scons_dependencies = ['SConstruct'] + rglob('SConscript') def ninja_custom_command(ninja, line) : - return False + return False CONFIGURATION_FILE = '.scons2ninja.conf' execfile(CONFIGURATION_FILE) @@ -248,104 +248,104 @@ ninja = NinjaBuilder() ninja.pool('scons_pool', depth = 1) if sys.platform == 'win32' : - ninja.rule('cl', - deps = 'msvc', - command = '$cl /showIncludes $clflags -c $in /Fo$out', - description = 'CXX $out') - - ninja.rule('link', - command = '$link $in $linkflags $libs /out:$out', - description = 'LINK $out') - - ninja.rule('link_mt', - command = '$link $in $linkflags $libs /out:$out ; $mt $mtflags', - description = 'LINK $out') - - ninja.rule('lib', - command = '$lib $libflags /out:$out $in', - description = 'AR $out') - - ninja.rule('rc', - command = '$rc $rcflags /Fo$out $in', - description = 'RC $out') - - # SCons doesn't touch files if they didn't change, which makes - # ninja rebuild the file over and over again. There's no touch on Windows :( - # Could implement it with a script, but for now, delete the file if - # this problem occurs. I'll fix it if it occurs too much. - ninja.rule('scons', - command = scons_cmd + " ${scons_args} $out", - pool = 'scons_pool', - description = 'GEN $out') - - ninja.rule('install', command = 'cmd /c copy $in $out') - ninja.rule('run', command = '$in') + ninja.rule('cl', + deps = 'msvc', + command = '$cl /showIncludes $clflags -c $in /Fo$out', + description = 'CXX $out') + + ninja.rule('link', + command = '$link $in $linkflags $libs /out:$out', + description = 'LINK $out') + + ninja.rule('link_mt', + command = '$link $in $linkflags $libs /out:$out ; $mt $mtflags', + description = 'LINK $out') + + ninja.rule('lib', + command = '$lib $libflags /out:$out $in', + description = 'AR $out') + + ninja.rule('rc', + command = '$rc $rcflags /Fo$out $in', + description = 'RC $out') + + # SCons doesn't touch files if they didn't change, which makes + # ninja rebuild the file over and over again. There's no touch on Windows :( + # Could implement it with a script, but for now, delete the file if + # this problem occurs. I'll fix it if it occurs too much. + ninja.rule('scons', + command = scons_cmd + " ${scons_args} $out", + pool = 'scons_pool', + description = 'GEN $out') + + ninja.rule('install', command = 'cmd /c copy $in $out') + ninja.rule('run', command = '$in') else : - ninja.rule('cxx', - deps = 'gcc', - depfile = '$out.d', - command = '$cxx -MMD -MF $out.d $cxxflags -c $in -o $out', - description = 'CXX $out') + ninja.rule('cxx', + deps = 'gcc', + depfile = '$out.d', + command = '$cxx -MMD -MF $out.d $cxxflags -c $in -o $out', + description = 'CXX $out') - ninja.rule('cc', - deps = 'gcc', - depfile = '$out.d', - command = '$cc -MMD -MF $out.d $ccflags -c $in -o $out', - description = 'CC $out') + ninja.rule('cc', + deps = 'gcc', + depfile = '$out.d', + command = '$cc -MMD -MF $out.d $ccflags -c $in -o $out', + description = 'CC $out') - ninja.rule('link', - command = '$glink -o $out $in $linkflags', - description = 'LINK $out') + ninja.rule('link', + command = '$glink -o $out $in $linkflags', + description = 'LINK $out') - ninja.rule('ar', - command = 'ar $arflags $out $in && ranlib $out', - description = 'AR $out') + ninja.rule('ar', + command = 'ar $arflags $out $in && ranlib $out', + description = 'AR $out') - # SCons doesn't touch files if they didn't change, which makes - # ninja rebuild the file over and over again. Touching solves this. - ninja.rule('scons', - command = scons_cmd + " $out && touch $out", - pool = 'scons_pool', - description = 'GEN $out') + # SCons doesn't touch files if they didn't change, which makes + # ninja rebuild the file over and over again. Touching solves this. + ninja.rule('scons', + command = scons_cmd + " $out && touch $out", + pool = 'scons_pool', + description = 'GEN $out') - ninja.rule('install', command = 'install $in $out') - ninja.rule('run', command = './$in') + ninja.rule('install', command = 'install $in $out') + ninja.rule('run', command = './$in') ninja.rule('moc', - command = '$moc $mocflags -o $out $in', - description = 'MOC $out') + command = '$moc $mocflags -o $out $in', + description = 'MOC $out') ninja.rule('rcc', - command = '$rcc $rccflags -name $name -o $out $in', - description = 'RCC $out') + command = '$rcc $rccflags -name $name -o $out $in', + description = 'RCC $out') ninja.rule('uic', - command = '$uic $uicflags -o $out $in', - description = 'UIC $out') + command = '$uic $uicflags -o $out $in', + description = 'UIC $out') ninja.rule('lrelease', - command = '$lrelease $lreleaseflags $in -qm $out', - description = 'LRELEASE $out') + command = '$lrelease $lreleaseflags $in -qm $out', + description = 'LRELEASE $out') ninja.rule('ibtool', - command = '$ibtool $ibtoolflags --compile $out $in', - description = 'IBTOOL $out') + command = '$ibtool $ibtoolflags --compile $out $in', + description = 'IBTOOL $out') ninja.rule('dsymutil', - command = '$dsymutil $dsymutilflags -o $out $in', - description = 'DSYMUTIL $out') + command = '$dsymutil $dsymutilflags -o $out $in', + description = 'DSYMUTIL $out') ninja.rule('generator', - command = "python " + SCRIPT + " ${scons_args}", - depfile = ".scons2ninja.deps", - pool = 'scons_pool', - generator = '1', - description = 'Regenerating build.ninja') + command = "python " + SCRIPT + " ${scons_args}", + depfile = ".scons2ninja.deps", + pool = 'scons_pool', + generator = '1', + description = 'Regenerating build.ninja') ninja.rule('sdef', - command = 'sdef $in | sdp -fh --basename $basename -o $outdir', - description = 'SDEF $out') + command = 'sdef $in | sdp -fh --basename $basename -o $outdir', + description = 'SDEF $out') ################################################################################ # Build Statements @@ -365,235 +365,235 @@ stage = 'preamble' skip_nth_line = -1 stack = ['.'] for line in f.stdout : - line = line.rstrip() - - # Skip lines if requested from previous command - if skip_nth_line >= 0 : - skip_nth_line -= 1 - if skip_nth_line == 0 : - continue - - if line.startswith('scons: done building targets') : - break - - if stage == "preamble" : - # Pass all lines from the SCons configuration step to output - if re.match("^scons: Building targets ...", line) : - stage = "build" - else : - print line - - elif stage == "build" : - if line.startswith('+-') : - stage = "dependencies" - elif re.match("^Using tempfile", line) : - # Ignore response files from MSVS - skip_nth_line = 2 - else : - build_lines.append(line) - - # Already detect targets that will need 'mt' - tool, _, flags = parse_tool_command(line) - if tool == 'mt' : - target = get_unary_flags("-outputresource:", flags)[0] - target = target[0:target.index(';')] - mtflags[target] = flags - - elif stage == "dependencies" : - if not re.match('^[\s|]+\+\-', line) : - # Work around bug in SCons that splits output over multiple lines - continue - - level = line.index('+-') / 2 - filename = line[level*2+2:] - if filename.startswith('[') : - filename = filename[1:-1] - - # Check if we use the 'fixed' format which escapes filenamenames - if filename.startswith('\'') and filename.endswith('\'') : - filename = eval(filename) - - if level < len(stack) : - stack = stack[0:level] - elif level > len(stack) : - if level != len(stack) + 1 : - raise Exception("Internal Error" ) - stack.append(previous_filename) - - # Skip absolute paths - if not os.path.isabs(filename) : - target = stack[-1] - if target not in dependencies : - dependencies[target] = [] - dependencies[target].append(filename) - previous_filename = filename + line = line.rstrip() + + # Skip lines if requested from previous command + if skip_nth_line >= 0 : + skip_nth_line -= 1 + if skip_nth_line == 0 : + continue + + if line.startswith('scons: done building targets') : + break + + if stage == "preamble" : + # Pass all lines from the SCons configuration step to output + if re.match("^scons: Building targets ...", line) : + stage = "build" + else : + print line + + elif stage == "build" : + if line.startswith('+-') : + stage = "dependencies" + elif re.match("^Using tempfile", line) : + # Ignore response files from MSVS + skip_nth_line = 2 + else : + build_lines.append(line) + + # Already detect targets that will need 'mt' + tool, _, flags = parse_tool_command(line) + if tool == 'mt' : + target = get_unary_flags("-outputresource:", flags)[0] + target = target[0:target.index(';')] + mtflags[target] = flags + + elif stage == "dependencies" : + if not re.match('^[\s|]+\+\-', line) : + # Work around bug in SCons that splits output over multiple lines + continue + + level = line.index('+-') / 2 + filename = line[level*2+2:] + if filename.startswith('[') : + filename = filename[1:-1] + + # Check if we use the 'fixed' format which escapes filenamenames + if filename.startswith('\'') and filename.endswith('\'') : + filename = eval(filename) + + if level < len(stack) : + stack = stack[0:level] + elif level > len(stack) : + if level != len(stack) + 1 : + raise Exception("Internal Error" ) + stack.append(previous_filename) + + # Skip absolute paths + if not os.path.isabs(filename) : + target = stack[-1] + if target not in dependencies : + dependencies[target] = [] + dependencies[target].append(filename) + previous_filename = filename if f.wait() != 0 : - print "Error calling '" + scons_generate_cmd + "'" - print f.stderr.read() - exit(-1) + print "Error calling '" + scons_generate_cmd + "'" + print f.stderr.read() + exit(-1) # Pass 2: Parse build rules tools = {} for line in build_lines : - # Custom python function - m = re.match('^(\w+)\(\[([^\]]*)\]', line) - if m : - out = [x[1:-1] for x in m.group(2).split(',')] - for x in out : - # 'Note' = To be more correct, deps should also include $scons_dependencies, - # but this regenerates a bit too often, so leaving it out for now. - ninja.build(x, 'scons', None, deps = sorted(get_dependencies(x, ninja.targets))) - continue - - - # TextFile - m = re.match("^Creating '([^']+)'", line) - if m : - out = m.group(1) - # Note: To be more correct, deps should also include $scons_dependencies, - # but this regenerates a bit too often, so leaving it out for now. - ninja.build(out, 'scons', None, deps = sorted(get_dependencies(out, ninja.targets))) - continue - - # Install - m = re.match('^Install file: "(.*)" as "(.*)"', line) - if m : - ninja.build(m.group(2), 'install', m.group(1)) - continue - - m = re.match('^Install directory: "(.*)" as "(.*)"', line) - if m : - for source in rglob('*', m.group(1)) : - if os.path.isdir(source) : - continue - target = os.path.join(m.group(2), os.path.relpath(source, m.group(1))) - ninja.build(target, 'install', source) - continue - - # Tools - tool, command, flags = parse_tool_command(line) - tools[tool] = command[0] - - ############################################################ - # clang/gcc tools - ############################################################ - - if tool == 'cc': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'cc', files, order_deps = '_generated_headers', ccflags = flags) - - elif tool == 'cxx': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'cxx', files, order_deps = '_generated_headers', cxxflags = flags) - - elif tool == 'glink': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - libs = get_unary_flags('-l', flags) - libpaths = get_unary_flags("-L", flags) - deps = get_built_libs(libs, libpaths, ninja.targets) - ninja.build(out, 'link', files, deps = sorted(deps), linkflags = flags) - - elif tool == 'ar': - objects, flags = partition(flags, lambda x: x.endswith('.o')) - libs, flags = partition(flags, lambda x: x.endswith('.a')) - out = libs[0] - ninja.build(out, 'ar', objects, arflags = flags) - - elif tool == 'ranlib': - pass - - - ############################################################ - # MSVC tools - ############################################################ - - elif tool == 'cl': - out, flags = extract_unary_flag("/Fo", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'cl', files, order_deps = '_generated_headers', clflags = flags) - - elif tool == 'lib': - out, flags = extract_unary_flag("/out:", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'lib', files, libflags = flags) - - elif tool == 'link': - objects, flags = partition(flags, lambda x: x.endswith('.obj') or x.endswith('.res')) - out, flags = extract_unary_flag("/out:", flags) - libs, flags = partition(flags, lambda x: not x.startswith("/") and x.endswith(".lib")) - libpaths = get_unary_flags("/libpath:", flags) - deps = get_built_libs(libs, libpaths, ninja.targets) - if out in mtflags : - ninja.build(out, 'link_mt', objects, deps = sorted(deps), - libs = libs, linkflags = flags, mtflags = mtflags[out]) - else : - ninja.build(out, 'link', objects, deps = sorted(deps), - libs = libs, linkflags = flags) - - elif tool == 'rc': - out, flags = extract_unary_flag("/fo", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'rc', files[0], order_deps = '_generated_headers', rcflags = flags) - - elif tool == 'mt': - # Already handled - pass - - ############################################################ - # Qt tools - ############################################################ - - elif tool == 'moc': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'moc', files, mocflags = flags) - - elif tool == 'uic': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'uic', files, uicflags = flags) - - elif tool == 'lrelease': - out, flags = extract_binary_flag("-qm", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'lrelease', files, lreleaseflags = flags) - - elif tool == 'rcc': - out, flags = extract_binary_flag("-o", flags) - name, flags = extract_binary_flag("-name", flags) - files, flags = extract_non_flags(flags) - deps = list(set(get_dependencies(out, ninja.targets)) - set(files)) - ninja.build(out, 'rcc', files, deps = sorted(deps), name = name, rccflags = flags) - - ############################################################ - # OS X tools - ############################################################ - - elif tool == 'ibtool': - out, flags = extract_binary_flag("--compile", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'ibtool', files, ibtoolflags = flags) - - elif tool == 'dsymutil': - out, flags = extract_binary_flag("-o", flags) - files, flags = extract_non_flags(flags) - ninja.build(out, 'dsymutil', files, dsymutilflags = flags) - - elif tool == 'sdef' : - source = flags[0]; - outdir, flags = extract_binary_flag("-o", flags) - basename, flags = extract_binary_flag("--basename", flags) - ninja.build(os.path.join(outdir, basename + ".h"), 'sdef', [source], - basename = basename, - outdir = outdir) - - - elif not ninja_custom_command(ninja, line) : - raise Exception("Unknown tool: '" + line + "'") + # Custom python function + m = re.match('^(\w+)\(\[([^\]]*)\]', line) + if m : + out = [x[1:-1] for x in m.group(2).split(',')] + for x in out : + # 'Note' = To be more correct, deps should also include $scons_dependencies, + # but this regenerates a bit too often, so leaving it out for now. + ninja.build(x, 'scons', None, deps = sorted(get_dependencies(x, ninja.targets))) + continue + + + # TextFile + m = re.match("^Creating '([^']+)'", line) + if m : + out = m.group(1) + # Note: To be more correct, deps should also include $scons_dependencies, + # but this regenerates a bit too often, so leaving it out for now. + ninja.build(out, 'scons', None, deps = sorted(get_dependencies(out, ninja.targets))) + continue + + # Install + m = re.match('^Install file: "(.*)" as "(.*)"', line) + if m : + ninja.build(m.group(2), 'install', m.group(1)) + continue + + m = re.match('^Install directory: "(.*)" as "(.*)"', line) + if m : + for source in rglob('*', m.group(1)) : + if os.path.isdir(source) : + continue + target = os.path.join(m.group(2), os.path.relpath(source, m.group(1))) + ninja.build(target, 'install', source) + continue + + # Tools + tool, command, flags = parse_tool_command(line) + tools[tool] = command[0] + + ############################################################ + # clang/gcc tools + ############################################################ + + if tool == 'cc': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'cc', files, order_deps = '_generated_headers', ccflags = flags) + + elif tool == 'cxx': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'cxx', files, order_deps = '_generated_headers', cxxflags = flags) + + elif tool == 'glink': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + libs = get_unary_flags('-l', flags) + libpaths = get_unary_flags("-L", flags) + deps = get_built_libs(libs, libpaths, ninja.targets) + ninja.build(out, 'link', files, deps = sorted(deps), linkflags = flags) + + elif tool == 'ar': + objects, flags = partition(flags, lambda x: x.endswith('.o')) + libs, flags = partition(flags, lambda x: x.endswith('.a')) + out = libs[0] + ninja.build(out, 'ar', objects, arflags = flags) + + elif tool == 'ranlib': + pass + + + ############################################################ + # MSVC tools + ############################################################ + + elif tool == 'cl': + out, flags = extract_unary_flag("/Fo", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'cl', files, order_deps = '_generated_headers', clflags = flags) + + elif tool == 'lib': + out, flags = extract_unary_flag("/out:", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'lib', files, libflags = flags) + + elif tool == 'link': + objects, flags = partition(flags, lambda x: x.endswith('.obj') or x.endswith('.res')) + out, flags = extract_unary_flag("/out:", flags) + libs, flags = partition(flags, lambda x: not x.startswith("/") and x.endswith(".lib")) + libpaths = get_unary_flags("/libpath:", flags) + deps = get_built_libs(libs, libpaths, ninja.targets) + if out in mtflags : + ninja.build(out, 'link_mt', objects, deps = sorted(deps), + libs = libs, linkflags = flags, mtflags = mtflags[out]) + else : + ninja.build(out, 'link', objects, deps = sorted(deps), + libs = libs, linkflags = flags) + + elif tool == 'rc': + out, flags = extract_unary_flag("/fo", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'rc', files[0], order_deps = '_generated_headers', rcflags = flags) + + elif tool == 'mt': + # Already handled + pass + + ############################################################ + # Qt tools + ############################################################ + + elif tool == 'moc': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'moc', files, mocflags = flags) + + elif tool == 'uic': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'uic', files, uicflags = flags) + + elif tool == 'lrelease': + out, flags = extract_binary_flag("-qm", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'lrelease', files, lreleaseflags = flags) + + elif tool == 'rcc': + out, flags = extract_binary_flag("-o", flags) + name, flags = extract_binary_flag("-name", flags) + files, flags = extract_non_flags(flags) + deps = list(set(get_dependencies(out, ninja.targets)) - set(files)) + ninja.build(out, 'rcc', files, deps = sorted(deps), name = name, rccflags = flags) + + ############################################################ + # OS X tools + ############################################################ + + elif tool == 'ibtool': + out, flags = extract_binary_flag("--compile", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'ibtool', files, ibtoolflags = flags) + + elif tool == 'dsymutil': + out, flags = extract_binary_flag("-o", flags) + files, flags = extract_non_flags(flags) + ninja.build(out, 'dsymutil', files, dsymutilflags = flags) + + elif tool == 'sdef' : + source = flags[0]; + outdir, flags = extract_binary_flag("-o", flags) + basename, flags = extract_binary_flag("--basename", flags) + ninja.build(os.path.join(outdir, basename + ".h"), 'sdef', [source], + basename = basename, + outdir = outdir) + + + elif not ninja_custom_command(ninja, line) : + raise Exception("Unknown tool: '" + line + "'") # Phony target for all generated headers, used as an order-only depency from all C/C++ sources @@ -607,11 +607,11 @@ ninja.header("# This file is generated by " + SCRIPT) ninja.variable("ninja_required_version", "1.3") ninja.variable("scons_args", SCONS_ARGS) for k, v in tools.iteritems() : - ninja.variable(k, v) + ninja.variable(k, v) # Extra customizations if 'ninja_post' in dir() : - ninja_post(ninja) + ninja_post(ninja) ################################################################################ diff --git a/Documentation/API/SConscript b/Documentation/API/SConscript index df20b27..a8a8b1b 100644 --- a/Documentation/API/SConscript +++ b/Documentation/API/SConscript @@ -1,6 +1,6 @@ Import("env") if "doc" in ARGUMENTS : - myenv = env.Clone() - myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"]) - myenv.DoxyGen("Doxyfile") + myenv = env.Clone() + myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"]) + myenv.DoxyGen("Doxyfile") diff --git a/Documentation/SConscript b/Documentation/SConscript index 161cd83..e2f6393 100644 --- a/Documentation/SConscript +++ b/Documentation/SConscript @@ -1,4 +1,4 @@ Import("env") if env["SCONS_STAGE"] == "build" : - SConscript(dirs = ["SwiftenDevelopersGuide", "SwiftUserGuide", "API", "SwiftAPI"]) + SConscript(dirs = ["SwiftenDevelopersGuide", "SwiftUserGuide", "API", "SwiftAPI"]) diff --git a/Documentation/SwiftAPI/SConscript b/Documentation/SwiftAPI/SConscript index df20b27..a8a8b1b 100644 --- a/Documentation/SwiftAPI/SConscript +++ b/Documentation/SwiftAPI/SConscript @@ -1,6 +1,6 @@ Import("env") if "doc" in ARGUMENTS : - myenv = env.Clone() - myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"]) - myenv.DoxyGen("Doxyfile") + myenv = env.Clone() + myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"]) + myenv.DoxyGen("Doxyfile") diff --git a/Documentation/SwiftUserGuide/SConscript b/Documentation/SwiftUserGuide/SConscript index 50f60bc..1577b83 100644 --- a/Documentation/SwiftUserGuide/SConscript +++ b/Documentation/SwiftUserGuide/SConscript @@ -11,5 +11,5 @@ import sys, re, os.path ################################################################################ if "doc" in ARGUMENTS : - env.DocBook("Swift Users Guide.xml") + env.DocBook("Swift Users Guide.xml") diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript index f3cb0d7..268ab9a 100644 --- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript +++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript @@ -7,11 +7,11 @@ example_env.UseFlags(example_env["SWIFTEN_DEP_FLAGS"]) # Precompile Swiften header # This is useful to slightly speed up compilation. # if example_env["PLATFORM"] == "win32": -# example_env.WriteVal("Swiften.cpp", example_env.Value("#include <Swiften/Swiften.h>\n")) -# example_env["PCH"] = example_env.PCH("Swiften.cpp")[0] -# example_env["PCHSTOP"] = "Swiften/Swiften.h" +# example_env.WriteVal("Swiften.cpp", example_env.Value("#include <Swiften/Swiften.h>\n")) +# example_env["PCH"] = example_env.PCH("Swiften.cpp")[0] +# example_env["PCHSTOP"] = "Swiften/Swiften.h" for i in range(1,7) : - example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"]) + example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"]) example_env.Program("EchoBot0x", "EchoBot0x.cpp") example_env.Program("EchoComponent", "EchoComponent.cpp") diff --git a/Documentation/SwiftenDevelopersGuide/SConscript b/Documentation/SwiftenDevelopersGuide/SConscript index ba0eb0b..ac7c67a 100644 --- a/Documentation/SwiftenDevelopersGuide/SConscript +++ b/Documentation/SwiftenDevelopersGuide/SConscript @@ -9,89 +9,89 @@ env.Tool("DocBook", toolpath = ["#/BuildTools/DocBook/SCons"]) import sys, re, os.path def generateDocBookCode(env, target, source) : - # Strips empty lines from the beginning & end of a program - def stripEmptyLines(program) : - programLines = program.split('\n') - newProgramLines = [] - inProgram = False - for line in programLines : - if not re.match("^\s*$", line) or inProgram : - inProgram = True - newProgramLines.append(line) - return '\n'.join(newProgramLines).rstrip() + # Strips empty lines from the beginning & end of a program + def stripEmptyLines(program) : + programLines = program.split('\n') + newProgramLines = [] + inProgram = False + for line in programLines : + if not re.match("^\s*$", line) or inProgram : + inProgram = True + newProgramLines.append(line) + return '\n'.join(newProgramLines).rstrip() - def createCallouts(program, calloutPrefix) : - newProgramLines = [] - calloutLines = [] - nextID = 0 - for line in program.split("\n") : - # FIXME: Takes the largest match - m = re.match(".*\/* \(\*\) (.*) \*/.*", line) - if m : - cobID = "cob-" + calloutPrefix + "-" + str(nextID) - coID = "co-" + calloutPrefix + "-" + str(nextID) - nextID += 1 - line = re.sub("/\*.*\*/", "]]><co id=\"%(cobID)s\" linkends=\"%(coID)s\"/><![CDATA[" % {"cobID" : cobID, "coID" : coID}, line) - calloutLines.append("<callout arearefs=\"%(cobID)s\" id=\"%(coID)s\"><para>%(text)s</para></callout>" % {"cobID": cobID, "coID": coID, "text": m.group(1)}) - newProgramLines.append(line) - callouts = "" - if len(calloutLines) > 0 : - callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>" - return ("\n".join(newProgramLines), callouts) + def createCallouts(program, calloutPrefix) : + newProgramLines = [] + calloutLines = [] + nextID = 0 + for line in program.split("\n") : + # FIXME: Takes the largest match + m = re.match(".*\/* \(\*\) (.*) \*/.*", line) + if m : + cobID = "cob-" + calloutPrefix + "-" + str(nextID) + coID = "co-" + calloutPrefix + "-" + str(nextID) + nextID += 1 + line = re.sub("/\*.*\*/", "]]><co id=\"%(cobID)s\" linkends=\"%(coID)s\"/><![CDATA[" % {"cobID" : cobID, "coID" : coID}, line) + calloutLines.append("<callout arearefs=\"%(cobID)s\" id=\"%(coID)s\"><para>%(text)s</para></callout>" % {"cobID": cobID, "coID": coID, "text": m.group(1)}) + newProgramLines.append(line) + callouts = "" + if len(calloutLines) > 0 : + callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>" + return ("\n".join(newProgramLines), callouts) - # Parse program - filename = source[0].abspath - filenameBase = os.path.basename(filename).replace(".cpp", "") - inputfile = open(filename) - program = "" - programs = {} - programName = "" - inEllipsis = False - for line in inputfile.readlines() : - if inEllipsis : - if "//..." in line : - inEllipsis = False - else : - if line.startswith("/*") or line.startswith(" *") : - continue - if "//..." in line : - inEllipsis = True - line = line.replace("//...", "]]>…<![CDATA[") - else : - m = re.match("^/// (.*)", line) - if m : - if programName : - programs[programName] = program - program = "" - programName = m.group(1).strip().replace(" ", "") - continue - line = re.sub("\t", " ", line) - program += line - programs[programName] = program - inputfile.close() + # Parse program + filename = source[0].abspath + filenameBase = os.path.basename(filename).replace(".cpp", "") + inputfile = open(filename) + program = "" + programs = {} + programName = "" + inEllipsis = False + for line in inputfile.readlines() : + if inEllipsis : + if "//..." in line : + inEllipsis = False + else : + if line.startswith("/*") or line.startswith(" *") : + continue + if "//..." in line : + inEllipsis = True + line = line.replace("//...", "]]>…<![CDATA[") + else : + m = re.match("^/// (.*)", line) + if m : + if programName : + programs[programName] = program + program = "" + programName = m.group(1).strip().replace(" ", "") + continue + line = re.sub("\t", " ", line) + program += line + programs[programName] = program + inputfile.close() - for programName, program in programs.items() : - program = stripEmptyLines(program) - (program, callouts) = createCallouts(program, filenameBase + "-" + programName) + for programName, program in programs.items() : + program = stripEmptyLines(program) + (program, callouts) = createCallouts(program, filenameBase + "-" + programName) - document = "<foo><programlisting><![CDATA[" + program + "]]></programlisting>" + callouts + "</foo>" + document = "<foo><programlisting><![CDATA[" + program + "]]></programlisting>" + callouts + "</foo>" - # Generate code - output = open(target[0].abspath, 'w') - output.write(document) - output.close() + # Generate code + output = open(target[0].abspath, 'w') + output.write(document) + output.close() ################################################################################ if "doc" in ARGUMENTS : - env.DocBook("Swiften Developers Guide.xml") + env.DocBook("Swiften Developers Guide.xml") sources = [] for i in range(1, 7) : - sources.append("Examples/EchoBot/EchoBot" + str(i) + ".cpp") + sources.append("Examples/EchoBot/EchoBot" + str(i) + ".cpp") sources.append("Examples/EchoBot/EchoBot0x.cpp") sources += ["Examples/EchoBot/" + i for i in ["EchoPayloadParserFactory.h", "EchoPayloadSerializer.h", "EchoPayload.h", "EchoComponent.cpp"]] for source in sources : - env.Command(source + ".xml", source, Action(generateDocBookCode, cmdstr = "$GENCOMSTR")) + env.Command(source + ".xml", source, Action(generateDocBookCode, cmdstr = "$GENCOMSTR")) SConscript(dirs = ["Examples"]) diff --git a/Limber/SConscript b/Limber/SConscript index 13bc0df..7aca509 100644 --- a/Limber/SConscript +++ b/Limber/SConscript @@ -1,30 +1,30 @@ Import("env") if env["SCONS_STAGE"] == "flags" : - env["LIMBER_FLAGS"] = { - "LIBPATH": [Dir(".")], - "LIBS": ["Limber"], - } + env["LIMBER_FLAGS"] = { + "LIBPATH": [Dir(".")], + "LIBS": ["Limber"], + } elif env["SCONS_STAGE"] == "build" : - libenv = env.Clone() - libenv.UseFlags(env["SWIFTEN_FLAGS"]) - libenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) - libenv.StaticLibrary("Limber", [ - "Server/ServerFromClientSession.cpp", - "Server/ServerSession.cpp", - "Server/ServerStanzaRouter.cpp", - "Server/SimpleUserRegistry.cpp", - "Server/UserRegistry.cpp", - ]) + libenv = env.Clone() + libenv.UseFlags(env["SWIFTEN_FLAGS"]) + libenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) + libenv.StaticLibrary("Limber", [ + "Server/ServerFromClientSession.cpp", + "Server/ServerSession.cpp", + "Server/ServerStanzaRouter.cpp", + "Server/SimpleUserRegistry.cpp", + "Server/UserRegistry.cpp", + ]) - myenv = env.Clone() - myenv.BuildVersion("BuildVersion.h", project = "limber") - myenv.UseFlags(env["LIMBER_FLAGS"]) - myenv.UseFlags(env["SWIFTEN_FLAGS"]) - myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) - myenv.Program("limber", ["main.cpp"]) + myenv = env.Clone() + myenv.BuildVersion("BuildVersion.h", project = "limber") + myenv.UseFlags(env["LIMBER_FLAGS"]) + myenv.UseFlags(env["SWIFTEN_FLAGS"]) + myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) + myenv.Program("limber", ["main.cpp"]) - env.Append(UNITTEST_SOURCES = [ - File("Server/UnitTest/ServerStanzaRouterTest.cpp"), - ]) + env.Append(UNITTEST_SOURCES = [ + File("Server/UnitTest/ServerStanzaRouterTest.cpp"), + ]) diff --git a/QA/Checker/SConscript b/QA/Checker/SConscript index 13dec62..06ec01b 100644 --- a/QA/Checker/SConscript +++ b/QA/Checker/SConscript @@ -1,17 +1,17 @@ Import("env") if env["TEST"] : - if env["SCONS_STAGE"] == "flags" : - env["CHECKER_FLAGS"] = { - "CPPPATH" : ["#/3rdParty/HippoMocks"], - "LIBS": ["Checker"], - "LIBPATH": [Dir(".")], - "LINKFLAGS": env["PLATFORM"] == "win32" and ["/SUBSYSTEM:CONSOLE"] or [] - } + if env["SCONS_STAGE"] == "flags" : + env["CHECKER_FLAGS"] = { + "CPPPATH" : ["#/3rdParty/HippoMocks"], + "LIBS": ["Checker"], + "LIBPATH": [Dir(".")], + "LINKFLAGS": env["PLATFORM"] == "win32" and ["/SUBSYSTEM:CONSOLE"] or [] + } - if env["SCONS_STAGE"] == "build" : - checker_env = env.Clone() - checker_env.UseFlags(env["SWIFTEN_FLAGS"]) - checker_env.UseFlags(env["BOOST_FLAGS"]) - checker_env.UseFlags(env["CPPUNIT_FLAGS"]) - checker_env.Library("Checker", ["checker.cpp", "IO.cpp"]) + if env["SCONS_STAGE"] == "build" : + checker_env = env.Clone() + checker_env.UseFlags(env["SWIFTEN_FLAGS"]) + checker_env.UseFlags(env["BOOST_FLAGS"]) + checker_env.UseFlags(env["CPPUNIT_FLAGS"]) + checker_env.Library("Checker", ["checker.cpp", "IO.cpp"]) diff --git a/QA/SConscript b/QA/SConscript index 5c626e3..b4125cf 100644 --- a/QA/SConscript +++ b/QA/SConscript @@ -1,4 +1,4 @@ SConscript(dirs = [ - "Checker", - "UnitTest" - ]) + "Checker", + "UnitTest" + ]) diff --git a/QA/UnitTest/SConscript b/QA/UnitTest/SConscript index 0cacc7c..1874f99 100644 --- a/QA/UnitTest/SConscript +++ b/QA/UnitTest/SConscript @@ -3,27 +3,27 @@ import os Import("env") if env["TEST"] : - if env["SCONS_STAGE"] == "flags" : - env["UNITTEST_SOURCES"] = [] - env["UNITTEST_OBJECTS"] = [] - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.UseFlags(env.get("CHECKER_FLAGS","")) - myenv.UseFlags(env.get("INJECTED_UNITTEST_FLAGS","")) # So things that piggy-back our build system can piggy-back our test system too - myenv.UseFlags(env.get("SLIMBER_FLAGS","")) - myenv.UseFlags(env.get("SWIFT_CONTROLLERS_FLAGS","")) - myenv.UseFlags(env.get("SWIFTOOLS_FLAGS","")) - myenv.UseFlags(env.get("LIMBER_FLAGS","")) - myenv.UseFlags(env.get("SWIFTEN_FLAGS","")) - myenv.UseFlags(env.get("CPPUNIT_FLAGS","")) - myenv.UseFlags(env.get("SWIFTEN_DEP_FLAGS", "")) - if env.get("HAVE_LIBXML") : - myenv.Append(CPPDEFINES = ["HAVE_LIBXML"]) - if env.get("HAVE_EXPAT") : - myenv.Append(CPPDEFINES = ["HAVE_EXPAT"]) - if env["TEST_CREATE_LIBRARIES"] : - lib = myenv.StaticLibrary("Swift_UnitTests", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"]) - myenv.Program("checker", lib) - else : - checker = myenv.Program("checker", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"]) - myenv.Test(checker, is_checker = True) + if env["SCONS_STAGE"] == "flags" : + env["UNITTEST_SOURCES"] = [] + env["UNITTEST_OBJECTS"] = [] + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.UseFlags(env.get("CHECKER_FLAGS","")) + myenv.UseFlags(env.get("INJECTED_UNITTEST_FLAGS","")) # So things that piggy-back our build system can piggy-back our test system too + myenv.UseFlags(env.get("SLIMBER_FLAGS","")) + myenv.UseFlags(env.get("SWIFT_CONTROLLERS_FLAGS","")) + myenv.UseFlags(env.get("SWIFTOOLS_FLAGS","")) + myenv.UseFlags(env.get("LIMBER_FLAGS","")) + myenv.UseFlags(env.get("SWIFTEN_FLAGS","")) + myenv.UseFlags(env.get("CPPUNIT_FLAGS","")) + myenv.UseFlags(env.get("SWIFTEN_DEP_FLAGS", "")) + if env.get("HAVE_LIBXML") : + myenv.Append(CPPDEFINES = ["HAVE_LIBXML"]) + if env.get("HAVE_EXPAT") : + myenv.Append(CPPDEFINES = ["HAVE_EXPAT"]) + if env["TEST_CREATE_LIBRARIES"] : + lib = myenv.StaticLibrary("Swift_UnitTests", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"]) + myenv.Program("checker", lib) + else : + checker = myenv.Program("checker", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"]) + myenv.Test(checker, is_checker = True) @@ -1,5 +1,5 @@ variant_dir = SConscript("BuildTools/SCons/SConscript.boot") if variant_dir : - SConscript("BuildTools/SCons/SConstruct", variant_dir = variant_dir, src_dir = ".") + SConscript("BuildTools/SCons/SConstruct", variant_dir = variant_dir, src_dir = ".") else : - SConscript("BuildTools/SCons/SConstruct") + SConscript("BuildTools/SCons/SConstruct") diff --git a/Slimber/CLI/SConscript b/Slimber/CLI/SConscript index e17996d..9dfa174 100644 --- a/Slimber/CLI/SConscript +++ b/Slimber/CLI/SConscript @@ -8,6 +8,6 @@ myenv.UseFlags(env["SWIFTEN_FLAGS"]) myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) myenv.Program("slimber", [ - "main.cpp", - "DummyMenulet.cpp", - ]) + "main.cpp", + "DummyMenulet.cpp", + ]) diff --git a/Slimber/Cocoa/SConscript b/Slimber/Cocoa/SConscript index 441dc27..8f3c104 100644 --- a/Slimber/Cocoa/SConscript +++ b/Slimber/Cocoa/SConscript @@ -8,22 +8,22 @@ myenv.MergeFlags(env["SWIFTEN_FLAGS"]) myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"]) myenv.Program("Slimber", [ - "main.mm", - "CocoaController.mm", - "CocoaMenulet.mm", - ]) + "main.mm", + "CocoaController.mm", + "CocoaMenulet.mm", + ]) myenv.Nib("MainMenu") myenv.AppBundle("Slimber", resources = { "": [ - "MainMenu.nib", - "../Resources/Slimber.icns", - "../Resources/Credits.html", - "../Resources/Online.png", - "../Resources/Offline.png", - "../Resources/UsersOnline.png", - "../Resources/UsersOffline.png" - ]}, info = { - "NSMainNibFile" : "MainMenu", - "LSUIElement" : "1", - }) + "MainMenu.nib", + "../Resources/Slimber.icns", + "../Resources/Credits.html", + "../Resources/Online.png", + "../Resources/Offline.png", + "../Resources/UsersOnline.png", + "../Resources/UsersOffline.png" + ]}, info = { + "NSMainNibFile" : "MainMenu", + "LSUIElement" : "1", + }) diff --git a/Slimber/Qt/SConscript b/Slimber/Qt/SConscript index 9d965cc..8328f8c 100644 --- a/Slimber/Qt/SConscript +++ b/Slimber/Qt/SConscript @@ -15,11 +15,11 @@ myenv.UseFlags(env.get("AVAHI_FLAGS", "")) myenv.UseFlags(myenv["PLATFORM_FLAGS"]) if myenv.get("HAVE_ICU") : - myenv.MergeFlags(env["ICU_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_ICU"]) + myenv.MergeFlags(env["ICU_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_ICU"]) if myenv.get("HAVE_LIBIDN") : - myenv.MergeFlags(env["LIBIDN_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"]) + myenv.MergeFlags(env["LIBIDN_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"]) myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"]) myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"]) @@ -27,39 +27,39 @@ myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"]) qt4modules = ['QtCore', 'QtGui'] if myenv["qt5"] : - qt_version = '5' - qt4modules += ['QtWidgets'] + qt_version = '5' + qt4modules += ['QtWidgets'] else : - qt_version = '4' + qt_version = '4' myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version) if env["PLATFORM"] == "win32" : - myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) - myenv.Append(LIBS = "qtmain") + myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) + myenv.Append(LIBS = "qtmain") myenv.BuildVersion("BuildVersion.h", project = "slimber") sources = [ - "main.cpp", - "QtMenulet.cpp", - "QtAboutDialog.cpp", - myenv.Qrc("Slimber.qrc"), - ] + "main.cpp", + "QtMenulet.cpp", + "QtAboutDialog.cpp", + myenv.Qrc("Slimber.qrc"), + ] #if env["PLATFORM"] == "win32" : -# myenv.RES("../resources/Windows/Slimber.rc") -# sources += ["../resources/Windows/Slimber.res"] +# myenv.RES("../resources/Windows/Slimber.rc") +# sources += ["../resources/Windows/Slimber.res"] if env["PLATFORM"] == "win32" : - slimberProgram = myenv.Program("Slimber", sources) + slimberProgram = myenv.Program("Slimber", sources) else : - slimberProgram = myenv.Program("slimber", sources) + slimberProgram = myenv.Program("slimber", sources) if env["PLATFORM"] == "win32" : - if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") : - myenv.WindowsBundle("Slimber", resources = {}, qtlibs = ["QtCore4", "QtGui4"]) - myenv.Append(NSIS_OPTIONS = [ - "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", - "/DbuildDate=" + datetime.date.today().strftime("%Y%m%d") - ]) - #myenv.Nsis("../Packaging/nsis/slimber.nsi") + if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") : + myenv.WindowsBundle("Slimber", resources = {}, qtlibs = ["QtCore4", "QtGui4"]) + myenv.Append(NSIS_OPTIONS = [ + "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", + "/DbuildDate=" + datetime.date.today().strftime("%Y%m%d") + ]) + #myenv.Nsis("../Packaging/nsis/slimber.nsi") diff --git a/Slimber/SConscript b/Slimber/SConscript index ff4f57d..a41fe0b 100644 --- a/Slimber/SConscript +++ b/Slimber/SConscript @@ -4,18 +4,18 @@ Import("env") env["BUILD_SLIMBER"] = True if env["PLATFORM"] == "win32" : - if not env.get("HAVE_BONJOUR") and "Slimber" in env["PROJECTS"] : - env["PROJECTS"].remove("Slimber") + if not env.get("HAVE_BONJOUR") and "Slimber" in env["PROJECTS"] : + env["PROJECTS"].remove("Slimber") elif env["PLATFORM"] != "darwin" : - if not env.get("HAVE_AVAHI", False) and "Slimber" in env["PROJECTS"] : - env["PROJECTS"].remove("Slimber") + if not env.get("HAVE_AVAHI", False) and "Slimber" in env["PROJECTS"] : + env["PROJECTS"].remove("Slimber") if not "Slimber" in env["PROJECTS"] and env["SCONS_STAGE"] == "flags" : - print "Bonjour missing. Not building Slimber." + print "Bonjour missing. Not building Slimber." if not env.get("HAVE_QT", False) and "Slimber" in env["PROJECTS"] : - print "Qt missing. Not building Slimber." - env["PROJECTS"].remove("Slimber") + print "Qt missing. Not building Slimber." + env["PROJECTS"].remove("Slimber") if "Slimber" in env["PROJECTS"] : @@ -23,42 +23,42 @@ if "Slimber" in env["PROJECTS"] : # Flags ################################################################################ - if env["SCONS_STAGE"] == "flags" : - env["SLIMBER_FLAGS"] = { - "LIBPATH": [Dir(".")], - "LIBS": ["Slimber"] - } + if env["SCONS_STAGE"] == "flags" : + env["SLIMBER_FLAGS"] = { + "LIBPATH": [Dir(".")], + "LIBS": ["Slimber"] + } ################################################################################ # Build ################################################################################ - if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.UseFlags(env["LIMBER_FLAGS"]) - myenv.MergeFlags(env["BOOST_FLAGS"]) - myenv.MergeFlags(env["SWIFTEN_FLAGS"]) - myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"]) - myenv.StaticLibrary("Slimber", [ - "LinkLocalPresenceManager.cpp", - "FileVCardCollection.cpp", - "VCardCollection.cpp", - "Server.cpp", - "MainController.cpp", - "MenuletController.cpp", - "Menulet.cpp" - ]) + if env["SCONS_STAGE"] == "build" : + myenv = env.Clone() + myenv.UseFlags(env["LIMBER_FLAGS"]) + myenv.MergeFlags(env["BOOST_FLAGS"]) + myenv.MergeFlags(env["SWIFTEN_FLAGS"]) + myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"]) + myenv.StaticLibrary("Slimber", [ + "LinkLocalPresenceManager.cpp", + "FileVCardCollection.cpp", + "VCardCollection.cpp", + "Server.cpp", + "MainController.cpp", + "MenuletController.cpp", + "Menulet.cpp" + ]) - env["SLIMBER_VERSION"] = "0.9.9." + datetime.date.today().strftime("%Y%m%d") + env["SLIMBER_VERSION"] = "0.9.9." + datetime.date.today().strftime("%Y%m%d") - env.Append(UNITTEST_SOURCES = [ - File("UnitTest/LinkLocalPresenceManagerTest.cpp"), - File("UnitTest/MenuletControllerTest.cpp") - ]) + env.Append(UNITTEST_SOURCES = [ + File("UnitTest/LinkLocalPresenceManagerTest.cpp"), + File("UnitTest/MenuletControllerTest.cpp") + ]) - SConscript("CLI/SConscript") - if env["PLATFORM"] == "darwin" : - SConscript("Cocoa/SConscript") - else : - SConscript("Qt/SConscript") + SConscript("CLI/SConscript") + if env["PLATFORM"] == "darwin" : + SConscript("Cocoa/SConscript") + else : + SConscript("Qt/SConscript") diff --git a/Sluift/ElementConvertors/SConscript b/Sluift/ElementConvertors/SConscript index 265017b..b67c65b 100644 --- a/Sluift/ElementConvertors/SConscript +++ b/Sluift/ElementConvertors/SConscript @@ -2,53 +2,53 @@ Import('env') convertors = [ - env.File("PubSubRetractConvertor.cpp"), - env.File("PubSubAffiliationsConvertor.cpp"), - env.File("PubSubPublishConvertor.cpp"), - env.File("PubSubItemsConvertor.cpp"), - env.File("PubSubOwnerRedirectConvertor.cpp"), - env.File("PubSubEventRedirectConvertor.cpp"), - env.File("UserTuneConvertor.cpp"), - env.File("PubSubConfigureConvertor.cpp"), - env.File("PubSubEventDisassociateConvertor.cpp"), - env.File("PubSubOwnerAffiliationsConvertor.cpp"), - env.File("PubSubOwnerConfigureConvertor.cpp"), - env.File("UserLocationConvertor.cpp"), - env.File("PubSubSubscribeOptionsConvertor.cpp"), - env.File("PubSubOwnerSubscriptionsConvertor.cpp"), - env.File("PubSubDefaultConvertor.cpp"), - env.File("PubSubEventCollectionConvertor.cpp"), - env.File("PubSubEventSubscriptionConvertor.cpp"), - env.File("PubSubEventRetractConvertor.cpp"), - env.File("PubSubItemConvertor.cpp"), - env.File("PubSubUnsubscribeConvertor.cpp"), - env.File("PubSubEventDeleteConvertor.cpp"), - env.File("PubSubCreateConvertor.cpp"), - env.File("PubSubOwnerPurgeConvertor.cpp"), - env.File("PubSubEventItemsConvertor.cpp"), - env.File("PubSubOptionsConvertor.cpp"), - env.File("PubSubEventItemConvertor.cpp"), - env.File("PubSubOwnerSubscriptionConvertor.cpp"), - env.File("PubSubOwnerAffiliationConvertor.cpp"), - env.File("PubSubEventPurgeConvertor.cpp"), - env.File("PubSubAffiliationConvertor.cpp"), - env.File("PubSubSubscribeConvertor.cpp"), - env.File("PubSubOwnerDeleteConvertor.cpp"), - env.File("PubSubOwnerDefaultConvertor.cpp"), - env.File("PubSubSubscriptionsConvertor.cpp"), - env.File("PubSubEventAssociateConvertor.cpp"), - env.File("PubSubSubscriptionConvertor.cpp"), - env.File("SecurityLabelConvertor.cpp"), - env.File("PubSubEventConfigurationConvertor.cpp"), - env.File("IQConvertor.cpp"), - env.File("PresenceConvertor.cpp"), - env.File("MessageConvertor.cpp"), - env.File("ResultSetConvertor.cpp"), - env.File("ForwardedConvertor.cpp"), - env.File("MAMResultConvertor.cpp"), - env.File("MAMQueryConvertor.cpp"), - env.File("MAMFinConvertor.cpp"), - env.File("SubjectConvertor.cpp"), - env.File("IsodeIQDelegationConvertor.cpp") + env.File("PubSubRetractConvertor.cpp"), + env.File("PubSubAffiliationsConvertor.cpp"), + env.File("PubSubPublishConvertor.cpp"), + env.File("PubSubItemsConvertor.cpp"), + env.File("PubSubOwnerRedirectConvertor.cpp"), + env.File("PubSubEventRedirectConvertor.cpp"), + env.File("UserTuneConvertor.cpp"), + env.File("PubSubConfigureConvertor.cpp"), + env.File("PubSubEventDisassociateConvertor.cpp"), + env.File("PubSubOwnerAffiliationsConvertor.cpp"), + env.File("PubSubOwnerConfigureConvertor.cpp"), + env.File("UserLocationConvertor.cpp"), + env.File("PubSubSubscribeOptionsConvertor.cpp"), + env.File("PubSubOwnerSubscriptionsConvertor.cpp"), + env.File("PubSubDefaultConvertor.cpp"), + env.File("PubSubEventCollectionConvertor.cpp"), + env.File("PubSubEventSubscriptionConvertor.cpp"), + env.File("PubSubEventRetractConvertor.cpp"), + env.File("PubSubItemConvertor.cpp"), + env.File("PubSubUnsubscribeConvertor.cpp"), + env.File("PubSubEventDeleteConvertor.cpp"), + env.File("PubSubCreateConvertor.cpp"), + env.File("PubSubOwnerPurgeConvertor.cpp"), + env.File("PubSubEventItemsConvertor.cpp"), + env.File("PubSubOptionsConvertor.cpp"), + env.File("PubSubEventItemConvertor.cpp"), + env.File("PubSubOwnerSubscriptionConvertor.cpp"), + env.File("PubSubOwnerAffiliationConvertor.cpp"), + env.File("PubSubEventPurgeConvertor.cpp"), + env.File("PubSubAffiliationConvertor.cpp"), + env.File("PubSubSubscribeConvertor.cpp"), + env.File("PubSubOwnerDeleteConvertor.cpp"), + env.File("PubSubOwnerDefaultConvertor.cpp"), + env.File("PubSubSubscriptionsConvertor.cpp"), + env.File("PubSubEventAssociateConvertor.cpp"), + env.File("PubSubSubscriptionConvertor.cpp"), + env.File("SecurityLabelConvertor.cpp"), + env.File("PubSubEventConfigurationConvertor.cpp"), + env.File("IQConvertor.cpp"), + env.File("PresenceConvertor.cpp"), + env.File("MessageConvertor.cpp"), + env.File("ResultSetConvertor.cpp"), + env.File("ForwardedConvertor.cpp"), + env.File("MAMResultConvertor.cpp"), + env.File("MAMQueryConvertor.cpp"), + env.File("MAMFinConvertor.cpp"), + env.File("SubjectConvertor.cpp"), + env.File("IsodeIQDelegationConvertor.cpp") ] Return('convertors') diff --git a/Sluift/SConscript b/Sluift/SConscript index 09da0a9..de9cab6 100644 --- a/Sluift/SConscript +++ b/Sluift/SConscript @@ -3,86 +3,86 @@ import Version, os.path Import(["env"]) if env["SCONS_STAGE"] == "build" and not GetOption("help") and not env.get("HAVE_LUA", 0) : - print "Warning: Lua was not found. Sluift will not be built." - if "Sluift" in env["PROJECTS"] : - env["PROJECTS"].remove("Sluift") - + print "Warning: Lua was not found. Sluift will not be built." + if "Sluift" in env["PROJECTS"] : + env["PROJECTS"].remove("Sluift") + elif env["SCONS_STAGE"] == "build" : - sluift_sources = [ - "Lua/Value.cpp", - "Lua/Exception.cpp", - "Lua/Check.cpp", - "Lua/FunctionRegistration.cpp", - "Lua/FunctionRegistry.cpp", - "Lua/LuaUtils.cpp", - "LuaElementConvertors.cpp", - "LuaElementConvertor.cpp", - "Response.cpp", - "ElementConvertors/BodyConvertor.cpp", - "ElementConvertors/VCardUpdateConvertor.cpp", - "ElementConvertors/PubSubEventConvertor.cpp", - "ElementConvertors/RawXMLElementConvertor.cpp", - "ElementConvertors/DOMElementConvertor.cpp", - "ElementConvertors/DefaultElementConvertor.cpp", - "ElementConvertors/DiscoInfoConvertor.cpp", - "ElementConvertors/DiscoItemsConvertor.cpp", - "ElementConvertors/FormConvertor.cpp", - "ElementConvertors/SoftwareVersionConvertor.cpp", - "ElementConvertors/VCardConvertor.cpp", - "ElementConvertors/CommandConvertor.cpp", - "ElementConvertors/StatusConvertor.cpp", - "ElementConvertors/StatusShowConvertor.cpp", - "ElementConvertors/DelayConvertor.cpp", - "Helpers.cpp", - "SluiftClient.cpp", - "SluiftComponent.cpp", - "Watchdog.cpp", - "core.c", - "client.cpp", - "component.cpp", - "sluift.cpp" - ] - sluift_sources += env.SConscript("ElementConvertors/SConscript") + sluift_sources = [ + "Lua/Value.cpp", + "Lua/Exception.cpp", + "Lua/Check.cpp", + "Lua/FunctionRegistration.cpp", + "Lua/FunctionRegistry.cpp", + "Lua/LuaUtils.cpp", + "LuaElementConvertors.cpp", + "LuaElementConvertor.cpp", + "Response.cpp", + "ElementConvertors/BodyConvertor.cpp", + "ElementConvertors/VCardUpdateConvertor.cpp", + "ElementConvertors/PubSubEventConvertor.cpp", + "ElementConvertors/RawXMLElementConvertor.cpp", + "ElementConvertors/DOMElementConvertor.cpp", + "ElementConvertors/DefaultElementConvertor.cpp", + "ElementConvertors/DiscoInfoConvertor.cpp", + "ElementConvertors/DiscoItemsConvertor.cpp", + "ElementConvertors/FormConvertor.cpp", + "ElementConvertors/SoftwareVersionConvertor.cpp", + "ElementConvertors/VCardConvertor.cpp", + "ElementConvertors/CommandConvertor.cpp", + "ElementConvertors/StatusConvertor.cpp", + "ElementConvertors/StatusShowConvertor.cpp", + "ElementConvertors/DelayConvertor.cpp", + "Helpers.cpp", + "SluiftClient.cpp", + "SluiftComponent.cpp", + "Watchdog.cpp", + "core.c", + "client.cpp", + "component.cpp", + "sluift.cpp" + ] + sluift_sources += env.SConscript("ElementConvertors/SConscript") - sluift_env = env.Clone() - sluift_env.UseFlags(env.get("LUA_FLAGS", {})) - sluift_env.UseFlags(env["SWIFTEN_FLAGS"]) - sluift_env.UseFlags(env["SWIFTEN_DEP_FLAGS"]) - # Support compilation on both Lua 5.1 and Lua 5.2 - sluift_env.Append(CPPDEFINES = ["LUA_COMPAT_ALL"]) - if sluift_env["PLATFORM"] == "win32" : - sluift_env.Append(CPPDEFINES = ["SLUIFT_BUILD_DLL"]) + sluift_env = env.Clone() + sluift_env.UseFlags(env.get("LUA_FLAGS", {})) + sluift_env.UseFlags(env["SWIFTEN_FLAGS"]) + sluift_env.UseFlags(env["SWIFTEN_DEP_FLAGS"]) + # Support compilation on both Lua 5.1 and Lua 5.2 + sluift_env.Append(CPPDEFINES = ["LUA_COMPAT_ALL"]) + if sluift_env["PLATFORM"] == "win32" : + sluift_env.Append(CPPDEFINES = ["SLUIFT_BUILD_DLL"]) - if sluift_env["PLATFORM"] == "darwin" and os.path.isdir("/Applications/iTunes.app") : - sluift_env.Append(FRAMEWORKS = ["ScriptingBridge"]) - sluift_env.Command("iTunes.h", "/Applications/iTunes.app", - "sdef ${SOURCE} | sdp -fh --basename iTunes -V 10.10 -o ${TARGET.dir}") - sluift_env.Append(CPPDEFINES = ["HAVE_ITUNES"]) - sluift_sources += ["ITunesInterface.mm"] + if sluift_env["PLATFORM"] == "darwin" and os.path.isdir("/Applications/iTunes.app") : + sluift_env.Append(FRAMEWORKS = ["ScriptingBridge"]) + sluift_env.Command("iTunes.h", "/Applications/iTunes.app", + "sdef ${SOURCE} | sdp -fh --basename iTunes -V 10.10 -o ${TARGET.dir}") + sluift_env.Append(CPPDEFINES = ["HAVE_ITUNES"]) + sluift_sources += ["ITunesInterface.mm"] - # Generate Version.h - version_header = "#pragma once\n\n" - version_header += "#define SLUIFT_VERSION_STRING \"" + Version.getBuildVersion(env.Dir("#").abspath, "sluift") + "\"\n" - sluift_env.WriteVal("Version.h", sluift_env.Value(version_header)) + # Generate Version.h + version_header = "#pragma once\n\n" + version_header += "#define SLUIFT_VERSION_STRING \"" + Version.getBuildVersion(env.Dir("#").abspath, "sluift") + "\"\n" + sluift_env.WriteVal("Version.h", sluift_env.Value(version_header)) - # Generate core.c - def generate_embedded_lua(env, target, source) : - f = open(source[0].abspath, "r") - data = f.read() - f.close() - f = open(target[0].abspath, "w") - f.write('#include <stddef.h>\n') - f.write('const size_t ' + source[0].name.replace(".", "_") + "_size = " + str(len(data)) + ";\n") - f.write('const char ' + source[0].name.replace(".", "_") + "[] = {" + ", ".join([str(ord(c)) for c in data]) + "};\n") - f.close() - sluift_env.Command("core.c", ["core.lua"], env.Action(generate_embedded_lua, cmdstr="$GENCOMSTR")) + # Generate core.c + def generate_embedded_lua(env, target, source) : + f = open(source[0].abspath, "r") + data = f.read() + f.close() + f = open(target[0].abspath, "w") + f.write('#include <stddef.h>\n') + f.write('const size_t ' + source[0].name.replace(".", "_") + "_size = " + str(len(data)) + ";\n") + f.write('const char ' + source[0].name.replace(".", "_") + "[] = {" + ", ".join([str(ord(c)) for c in data]) + "};\n") + f.close() + sluift_env.Command("core.c", ["core.lua"], env.Action(generate_embedded_lua, cmdstr="$GENCOMSTR")) - sluift_env.WriteVal("dll.c", sluift_env.Value("")) + sluift_env.WriteVal("dll.c", sluift_env.Value("")) - sluift_sources = [env.File(x) for x in sluift_sources] - for sluift_variant in ['dll', 'exe'] : - SConscript(["SConscript.variant"], variant_dir = sluift_variant, - duplicate = 0, - exports = ['sluift_sources', 'sluift_variant', 'sluift_env']) + sluift_sources = [env.File(x) for x in sluift_sources] + for sluift_variant in ['dll', 'exe'] : + SConscript(["SConscript.variant"], variant_dir = sluift_variant, + duplicate = 0, + exports = ['sluift_sources', 'sluift_variant', 'sluift_env']) diff --git a/Sluift/SConscript.variant b/Sluift/SConscript.variant index d0e2b18..9f56c91 100644 --- a/Sluift/SConscript.variant +++ b/Sluift/SConscript.variant @@ -6,37 +6,37 @@ Import('sluift_variant') Import('sluift_sources') if sluift_variant == 'exe' : - common_objects = sluift_env.StaticObject(sluift_sources) + common_objects = sluift_env.StaticObject(sluift_sources) - sluift_exe_env = sluift_env.Clone() - tokenize = sluift_exe_env.StaticObject("#/Sluift/tokenize.cpp") - exe_sources = tokenize + [ - "#/Sluift/Console.cpp", - "#/Sluift/Terminal.cpp", - "#/Sluift/StandardTerminal.cpp", - "#/Sluift/Completer.cpp", - "#/Sluift/main.cpp", - ] + sluift_exe_env = sluift_env.Clone() + tokenize = sluift_exe_env.StaticObject("#/Sluift/tokenize.cpp") + exe_sources = tokenize + [ + "#/Sluift/Console.cpp", + "#/Sluift/Terminal.cpp", + "#/Sluift/StandardTerminal.cpp", + "#/Sluift/Completer.cpp", + "#/Sluift/main.cpp", + ] - if sluift_exe_env.get("HAVE_EDITLINE", False) : - sluift_exe_env.Append(CPPDEFINES = ["HAVE_EDITLINE"]) - sluift_exe_env.MergeFlags(sluift_exe_env["EDITLINE_FLAGS"]) - exe_sources += ["#/Sluift/EditlineTerminal.cpp"] + if sluift_exe_env.get("HAVE_EDITLINE", False) : + sluift_exe_env.Append(CPPDEFINES = ["HAVE_EDITLINE"]) + sluift_exe_env.MergeFlags(sluift_exe_env["EDITLINE_FLAGS"]) + exe_sources += ["#/Sluift/EditlineTerminal.cpp"] - env["SLUIFT"] = sluift_exe_env.Program("sluift", common_objects + exe_sources) - if sluift_exe_env.get("SLUIFT_INSTALLDIR", "") : - sluift_exe_env.Install(os.path.join(sluift_exe_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"]) + env["SLUIFT"] = sluift_exe_env.Program("sluift", common_objects + exe_sources) + if sluift_exe_env.get("SLUIFT_INSTALLDIR", "") : + sluift_exe_env.Install(os.path.join(sluift_exe_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"]) - # Unit tests - env.Append(UNITTEST_OBJECTS = tokenize + ["#/Sluift/UnitTest/TokenizeTest.cpp"]) + # Unit tests + env.Append(UNITTEST_OBJECTS = tokenize + ["#/Sluift/UnitTest/TokenizeTest.cpp"]) else : - sluift_env["SLUIFT_DLL_SUFFIX"] = "${SHLIBSUFFIX}" - if sluift_env["PLATFORM"] == "darwin" : - sluift_env["SLUIFT_DLL_SUFFIX"] = ".so" - sluift_dll = sluift_env.SharedLibrary(sluift_env.File("sluift${SLUIFT_DLL_SUFFIX}"), - sluift_sources + ["#/Sluift/dll.c"]) - if sluift_env.get("SLUIFT_INSTALLDIR", False) and sluift_env.get("LUA_VERSION", False) : - sluift_env.Install( - os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "lib", "lua", sluift_env["LUA_VERSION"]), - sluift_dll) + sluift_env["SLUIFT_DLL_SUFFIX"] = "${SHLIBSUFFIX}" + if sluift_env["PLATFORM"] == "darwin" : + sluift_env["SLUIFT_DLL_SUFFIX"] = ".so" + sluift_dll = sluift_env.SharedLibrary(sluift_env.File("sluift${SLUIFT_DLL_SUFFIX}"), + sluift_sources + ["#/Sluift/dll.c"]) + if sluift_env.get("SLUIFT_INSTALLDIR", False) and sluift_env.get("LUA_VERSION", False) : + sluift_env.Install( + os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "lib", "lua", sluift_env["LUA_VERSION"]), + sluift_dll) diff --git a/SwifTools/Application/SConscript b/SwifTools/Application/SConscript index 32924fc..29bcceb 100644 --- a/SwifTools/Application/SConscript +++ b/SwifTools/Application/SConscript @@ -1,27 +1,27 @@ Import("swiftools_env", "env") sources = [ - "ApplicationPathProvider.cpp", - ] + "ApplicationPathProvider.cpp", + ] if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : - sources += [ - "CocoaApplication.mm", - "MacOSXApplicationPathProvider.cpp", - ] + sources += [ + "CocoaApplication.mm", + "MacOSXApplicationPathProvider.cpp", + ] elif swiftools_env["PLATFORM"] == "win32" : - sources += [ - "WindowsApplicationPathProvider.cpp" - ] + sources += [ + "WindowsApplicationPathProvider.cpp" + ] else : - sources += [ - "UnixApplicationPathProvider.cpp" - ] + sources += [ + "UnixApplicationPathProvider.cpp" + ] objects = swiftools_env.StaticObject(sources) swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects]) if swiftools_env["PLATFORM"] != "darwin" or swiftools_env["target"] == "native" : - env.Append(UNITTEST_SOURCES = [ - File("UnitTest/ApplicationPathProviderTest.cpp") - ]) + env.Append(UNITTEST_SOURCES = [ + File("UnitTest/ApplicationPathProviderTest.cpp") + ]) diff --git a/SwifTools/Cocoa/SConscript b/SwifTools/Cocoa/SConscript index 4ae4a07..f4bd286 100644 --- a/SwifTools/Cocoa/SConscript +++ b/SwifTools/Cocoa/SConscript @@ -2,7 +2,7 @@ Import("swiftools_env", "env") sources = [] if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : - sources += ["CocoaAction.mm"] + sources += ["CocoaAction.mm"] objects = swiftools_env.StaticObject(sources) swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects]) diff --git a/SwifTools/Dock/SConscript b/SwifTools/Dock/SConscript index 94797cb..3dbcf60 100644 --- a/SwifTools/Dock/SConscript +++ b/SwifTools/Dock/SConscript @@ -1,13 +1,13 @@ Import("swiftools_env") sources = [ - "Dock.cpp", - ] + "Dock.cpp", + ] if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : - sources += [ - "MacOSXDock.mm", - ] + sources += [ + "MacOSXDock.mm", + ] objects = swiftools_env.StaticObject(sources) swiftools_env.Append(SWIFTOOLS_OBJECTS = objects) diff --git a/SwifTools/Idle/IdleQuerierTest/SConscript b/SwifTools/Idle/IdleQuerierTest/SConscript index 5878a46..89bb3f9 100644 --- a/SwifTools/Idle/IdleQuerierTest/SConscript +++ b/SwifTools/Idle/IdleQuerierTest/SConscript @@ -1,12 +1,12 @@ Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["BOOST_FLAGS"]) - if myenv["HAVE_XSS"] : - myenv.MergeFlags(myenv.get("XSS_FLAGS", {})) - myenv.Append(LIBS = ["X11"]) - myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) - tester = myenv.Program("IdleQuerierTest", ["IdleQuerierTest.cpp"]) + myenv = env.Clone() + myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["BOOST_FLAGS"]) + if myenv["HAVE_XSS"] : + myenv.MergeFlags(myenv.get("XSS_FLAGS", {})) + myenv.Append(LIBS = ["X11"]) + myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) + tester = myenv.Program("IdleQuerierTest", ["IdleQuerierTest.cpp"]) diff --git a/SwifTools/Idle/UnitTest/SConscript b/SwifTools/Idle/UnitTest/SConscript index f193349..26a9190 100644 --- a/SwifTools/Idle/UnitTest/SConscript +++ b/SwifTools/Idle/UnitTest/SConscript @@ -1,5 +1,5 @@ Import("env") env.Append(UNITTEST_SOURCES = [ - File("ActualIdleDetectorTest.cpp") - ]) + File("ActualIdleDetectorTest.cpp") + ]) diff --git a/SwifTools/Notifier/SConscript b/SwifTools/Notifier/SConscript index e60937b..a8e8590 100644 --- a/SwifTools/Notifier/SConscript +++ b/SwifTools/Notifier/SConscript @@ -3,25 +3,25 @@ Import("swiftools_env") myenv = swiftools_env.Clone() sources = [ - "Notifier.cpp", - ] + "Notifier.cpp", + ] if swiftools_env.get("HAVE_GROWL", False) : - sources += [ - "GrowlNotifier.mm", - "GrowlNotifierDelegate.mm", - ] + sources += [ + "GrowlNotifier.mm", + "GrowlNotifierDelegate.mm", + ] elif myenv["PLATFORM"] == "darwin" : - sources += [ - "NotificationCenterNotifier.mm", - "NotificationCenterNotifierDelegate.mm", - ] + sources += [ + "NotificationCenterNotifier.mm", + "NotificationCenterNotifierDelegate.mm", + ] if swiftools_env.get("HAVE_SNARL", False) : - myenv.MergeFlags(myenv["SNARL_FLAGS"]) - sources += [ - "SnarlNotifier.cpp", - ] - + myenv.MergeFlags(myenv["SNARL_FLAGS"]) + sources += [ + "SnarlNotifier.cpp", + ] + objects = myenv.StaticObject(sources) swiftools_env.Append(SWIFTOOLS_OBJECTS = objects) diff --git a/SwifTools/SConscript b/SwifTools/SConscript index b9822e0..aa6d47e 100644 --- a/SwifTools/SConscript +++ b/SwifTools/SConscript @@ -5,79 +5,79 @@ Import("env") ################################################################################ if env["SCONS_STAGE"] == "flags" : - env["SWIFTOOLS_FLAGS"] = { - "LIBPATH": [Dir(".")], - "LIBS": ["SwifTools"] - } + env["SWIFTOOLS_FLAGS"] = { + "LIBPATH": [Dir(".")], + "LIBS": ["SwifTools"] + } ################################################################################ # Build ################################################################################ if env["SCONS_STAGE"] == "build" : - swiftools_env = env.Clone() - swiftools_env.UseFlags(swiftools_env["SWIFTEN_FLAGS"]) - swiftools_env.UseFlags(swiftools_env["BOOST_FLAGS"]) + swiftools_env = env.Clone() + swiftools_env.UseFlags(swiftools_env["SWIFTEN_FLAGS"]) + swiftools_env.UseFlags(swiftools_env["BOOST_FLAGS"]) - sources = [ - "Idle/IdleDetector.cpp", - "Idle/ActualIdleDetector.cpp", - "Idle/IdleQuerier.cpp", - "Idle/PlatformIdleQuerier.cpp", - "AutoUpdater/AutoUpdater.cpp", - "AutoUpdater/PlatformAutoUpdaterFactory.cpp", - "Linkify.cpp", - "TabComplete.cpp", - "LastLineTracker.cpp", - ] - - if swiftools_env["HAVE_HUNSPELL"] : - swiftools_env.UseFlags(swiftools_env["HUNSPELL_FLAGS"]) - swiftools_env.Append(CPPDEFINES = ["HAVE_HUNSPELL"]) - sources += [ - "SpellCheckerFactory.cpp", - "HunspellChecker.cpp", - "SpellParser.cpp", - ] - elif swiftools_env["PLATFORM"] == "darwin" and env["target"] == "native" : - sources += [ - "SpellCheckerFactory.cpp", - "MacOSXChecker.mm", - "SpellParser.cpp", - ] + sources = [ + "Idle/IdleDetector.cpp", + "Idle/ActualIdleDetector.cpp", + "Idle/IdleQuerier.cpp", + "Idle/PlatformIdleQuerier.cpp", + "AutoUpdater/AutoUpdater.cpp", + "AutoUpdater/PlatformAutoUpdaterFactory.cpp", + "Linkify.cpp", + "TabComplete.cpp", + "LastLineTracker.cpp", + ] + if swiftools_env["HAVE_HUNSPELL"] : + swiftools_env.UseFlags(swiftools_env["HUNSPELL_FLAGS"]) + swiftools_env.Append(CPPDEFINES = ["HAVE_HUNSPELL"]) + sources += [ + "SpellCheckerFactory.cpp", + "HunspellChecker.cpp", + "SpellParser.cpp", + ] + elif swiftools_env["PLATFORM"] == "darwin" and env["target"] == "native" : + sources += [ + "SpellCheckerFactory.cpp", + "MacOSXChecker.mm", + "SpellParser.cpp", + ] - if swiftools_env.get("HAVE_SPARKLE", 0) : - swiftools_env.UseFlags(swiftools_env["SPARKLE_FLAGS"]) - swiftools_env.Append(CPPDEFINES = ["HAVE_SPARKLE"]) - sources += ["AutoUpdater/SparkleAutoUpdater.mm"] - if swiftools_env["PLATFORM"] == "win32" : - sources += ["Idle/WindowsIdleQuerier.cpp"] - elif swiftools_env["PLATFORM"] == "darwin" and swiftools_env.get("HAVE_IOKIT", False) : - swiftools_env.Append(CPPDEFINES = ["HAVE_IOKIT"]) - sources += ["Idle/MacOSXIdleQuerier.cpp"] - elif swiftools_env["HAVE_XSS"] : - swiftools_env.Append(CPPDEFINES = ["HAVE_XSS"]) - sources += ["Idle/XSSIdleQuerier.cpp"] + if swiftools_env.get("HAVE_SPARKLE", 0) : + swiftools_env.UseFlags(swiftools_env["SPARKLE_FLAGS"]) + swiftools_env.Append(CPPDEFINES = ["HAVE_SPARKLE"]) + sources += ["AutoUpdater/SparkleAutoUpdater.mm"] - if env.get("HAVE_BREAKPAD", False) : - swiftools_env.UseFlags(swiftools_env["BREAKPAD_FLAGS"]) - swiftools_env.Append(CPPDEFINES = ["HAVE_BREAKPAD"]) - sources += ["CrashReporter.cpp"] - - swiftools_env["SWIFTOOLS_OBJECTS"] = [] - Export("swiftools_env") - - SConscript(dirs = [ - "Application", - "Dock", - "Notifier", - "URIHandler", - "Idle/IdleQuerierTest", - "Idle/UnitTest", - "Cocoa", - "UnitTest" - ]) + if swiftools_env["PLATFORM"] == "win32" : + sources += ["Idle/WindowsIdleQuerier.cpp"] + elif swiftools_env["PLATFORM"] == "darwin" and swiftools_env.get("HAVE_IOKIT", False) : + swiftools_env.Append(CPPDEFINES = ["HAVE_IOKIT"]) + sources += ["Idle/MacOSXIdleQuerier.cpp"] + elif swiftools_env["HAVE_XSS"] : + swiftools_env.Append(CPPDEFINES = ["HAVE_XSS"]) + sources += ["Idle/XSSIdleQuerier.cpp"] - swiftools_env.StaticLibrary("SwifTools", sources + swiftools_env["SWIFTOOLS_OBJECTS"]) + if env.get("HAVE_BREAKPAD", False) : + swiftools_env.UseFlags(swiftools_env["BREAKPAD_FLAGS"]) + swiftools_env.Append(CPPDEFINES = ["HAVE_BREAKPAD"]) + sources += ["CrashReporter.cpp"] + + swiftools_env["SWIFTOOLS_OBJECTS"] = [] + Export("swiftools_env") + + SConscript(dirs = [ + "Application", + "Dock", + "Notifier", + "URIHandler", + "Idle/IdleQuerierTest", + "Idle/UnitTest", + "Cocoa", + "UnitTest" + ]) + + swiftools_env.StaticLibrary("SwifTools", sources + swiftools_env["SWIFTOOLS_OBJECTS"]) diff --git a/SwifTools/URIHandler/SConscript b/SwifTools/URIHandler/SConscript index 90ec00a..8ebbdaf 100644 --- a/SwifTools/URIHandler/SConscript +++ b/SwifTools/URIHandler/SConscript @@ -1,22 +1,22 @@ Import("swiftools_env", "env") sources = [ - "XMPPURI.cpp", - "URIHandler.cpp", - ] + "XMPPURI.cpp", + "URIHandler.cpp", + ] if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : - sources += [ - "MacOSXURIHandler.mm" - ] + sources += [ + "MacOSXURIHandler.mm" + ] elif swiftools_env["PLATFORM"] == "win32" : - sources += [] + sources += [] else : - sources += [] + sources += [] objects = swiftools_env.StaticObject(sources) swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects]) env.Append(UNITTEST_SOURCES = [ - File("UnitTest/XMPPURITest.cpp"), - ]) + File("UnitTest/XMPPURITest.cpp"), + ]) diff --git a/SwifTools/UnitTest/SConscript b/SwifTools/UnitTest/SConscript index dbd1ce5..bf44899 100644 --- a/SwifTools/UnitTest/SConscript +++ b/SwifTools/UnitTest/SConscript @@ -1,12 +1,12 @@ Import("env") env.Append(UNITTEST_SOURCES = [ - File("LinkifyTest.cpp"), - File("TabCompleteTest.cpp"), - File("LastLineTrackerTest.cpp"), - ]) + File("LinkifyTest.cpp"), + File("TabCompleteTest.cpp"), + File("LastLineTrackerTest.cpp"), + ]) if env["HAVE_HUNSPELL"] : - env.Append(UNITTEST_SOURCES = [ - File("SpellParserTest.cpp"), - ]) + env.Append(UNITTEST_SOURCES = [ + File("SpellParserTest.cpp"), + ]) diff --git a/Swift/Controllers/SConscript b/Swift/Controllers/SConscript index 5ebbdd3..105b44b 100644 --- a/Swift/Controllers/SConscript +++ b/Swift/Controllers/SConscript @@ -6,10 +6,10 @@ import Version ################################################################################ if env["SCONS_STAGE"] == "flags" : - env["SWIFT_CONTROLLERS_FLAGS"] = { - "LIBPATH": [Dir(".")], - "LIBS": ["SwiftControllers"] - } + env["SWIFT_CONTROLLERS_FLAGS"] = { + "LIBPATH": [Dir(".")], + "LIBS": ["SwiftControllers"] + } ################################################################################ @@ -17,95 +17,95 @@ if env["SCONS_STAGE"] == "flags" : ################################################################################ if env["SCONS_STAGE"] == "build" : - myenv = env.Clone() - myenv.BuildVersion("BuildVersion.h", project = "swift") - myenv.UseFlags(env["SWIFTEN_FLAGS"]) - myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) - myenv.StaticLibrary("SwiftControllers", [ - "Chat/ChatController.cpp", - "Chat/ChatControllerBase.cpp", - "Chat/ChatsManager.cpp", - "Chat/MUCController.cpp", - "Chat/MUCSearchController.cpp", - "Chat/UserSearchController.cpp", - "Chat/ChatMessageParser.cpp", - "ContactSuggester.cpp", - "MainController.cpp", - "ProfileController.cpp", - "ShowProfileController.cpp", - "ContactEditController.cpp", - "FileTransfer/FileTransferController.cpp", - "FileTransfer/FileTransferOverview.cpp", - "FileTransfer/FileTransferProgressInfo.cpp", - "Roster/RosterController.cpp", - "Roster/RosterGroupExpandinessPersister.cpp", - "Roster/ContactRosterItem.cpp", - "Roster/GroupRosterItem.cpp", - "Roster/RosterItem.cpp", - "Roster/Roster.cpp", - "Roster/RosterVCardProvider.cpp", - "Roster/TableRoster.cpp", - "EventWindowController.cpp", - "SoundEventController.cpp", - "SystemTrayController.cpp", - "XMLConsoleController.cpp", - "HistoryViewController.cpp", - "HistoryController.cpp", - "FileTransferListController.cpp", - "BlockListController.cpp", - "StatusTracker.cpp", - "PresenceNotifier.cpp", - "EventNotifier.cpp", - "AdHocManager.cpp", - "AdHocController.cpp", - "XMPPEvents/EventController.cpp", - "UIEvents/UIEvent.cpp", - "UIInterfaces/XMLConsoleWidget.cpp", - "UIInterfaces/ChatListWindow.cpp", - "UIInterfaces/HighlightEditorWindow.cpp", - "PreviousStatusStore.cpp", - "ProfileSettingsProvider.cpp", - "Settings/SettingsProviderHierachy.cpp", - "Settings/XMLSettingsProvider.cpp", - "Storages/CertificateStorageFactory.cpp", - "Storages/CertificateStorage.cpp", - "Storages/CertificateFileStorage.cpp", - "Storages/CertificateMemoryStorage.cpp", - "Storages/AvatarFileStorage.cpp", - "Storages/FileStorages.cpp", - "Storages/RosterFileStorage.cpp", - "Storages/CapsFileStorage.cpp", - "Storages/VCardFileStorage.cpp", - "StatusUtil.cpp", - "Translator.cpp", - "XMPPURIController.cpp", - "ChatMessageSummarizer.cpp", - "SettingConstants.cpp", - "WhiteboardManager.cpp", - "StatusCache.cpp", - "HighlightAction.cpp", - "HighlightEditorController.cpp", - "HighlightManager.cpp", - "HighlightRule.cpp", - "Highlighter.cpp", - "ContactsFromXMPPRoster.cpp", - "ContactProvider.cpp", - "Contact.cpp" - ]) + myenv = env.Clone() + myenv.BuildVersion("BuildVersion.h", project = "swift") + myenv.UseFlags(env["SWIFTEN_FLAGS"]) + myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) + myenv.StaticLibrary("SwiftControllers", [ + "Chat/ChatController.cpp", + "Chat/ChatControllerBase.cpp", + "Chat/ChatsManager.cpp", + "Chat/MUCController.cpp", + "Chat/MUCSearchController.cpp", + "Chat/UserSearchController.cpp", + "Chat/ChatMessageParser.cpp", + "ContactSuggester.cpp", + "MainController.cpp", + "ProfileController.cpp", + "ShowProfileController.cpp", + "ContactEditController.cpp", + "FileTransfer/FileTransferController.cpp", + "FileTransfer/FileTransferOverview.cpp", + "FileTransfer/FileTransferProgressInfo.cpp", + "Roster/RosterController.cpp", + "Roster/RosterGroupExpandinessPersister.cpp", + "Roster/ContactRosterItem.cpp", + "Roster/GroupRosterItem.cpp", + "Roster/RosterItem.cpp", + "Roster/Roster.cpp", + "Roster/RosterVCardProvider.cpp", + "Roster/TableRoster.cpp", + "EventWindowController.cpp", + "SoundEventController.cpp", + "SystemTrayController.cpp", + "XMLConsoleController.cpp", + "HistoryViewController.cpp", + "HistoryController.cpp", + "FileTransferListController.cpp", + "BlockListController.cpp", + "StatusTracker.cpp", + "PresenceNotifier.cpp", + "EventNotifier.cpp", + "AdHocManager.cpp", + "AdHocController.cpp", + "XMPPEvents/EventController.cpp", + "UIEvents/UIEvent.cpp", + "UIInterfaces/XMLConsoleWidget.cpp", + "UIInterfaces/ChatListWindow.cpp", + "UIInterfaces/HighlightEditorWindow.cpp", + "PreviousStatusStore.cpp", + "ProfileSettingsProvider.cpp", + "Settings/SettingsProviderHierachy.cpp", + "Settings/XMLSettingsProvider.cpp", + "Storages/CertificateStorageFactory.cpp", + "Storages/CertificateStorage.cpp", + "Storages/CertificateFileStorage.cpp", + "Storages/CertificateMemoryStorage.cpp", + "Storages/AvatarFileStorage.cpp", + "Storages/FileStorages.cpp", + "Storages/RosterFileStorage.cpp", + "Storages/CapsFileStorage.cpp", + "Storages/VCardFileStorage.cpp", + "StatusUtil.cpp", + "Translator.cpp", + "XMPPURIController.cpp", + "ChatMessageSummarizer.cpp", + "SettingConstants.cpp", + "WhiteboardManager.cpp", + "StatusCache.cpp", + "HighlightAction.cpp", + "HighlightEditorController.cpp", + "HighlightManager.cpp", + "HighlightRule.cpp", + "Highlighter.cpp", + "ContactsFromXMPPRoster.cpp", + "ContactProvider.cpp", + "Contact.cpp" + ]) - env.Append(UNITTEST_SOURCES = [ - File("Roster/UnitTest/RosterControllerTest.cpp"), - File("Roster/UnitTest/RosterTest.cpp"), - File("Roster/UnitTest/LeastCommonSubsequenceTest.cpp"), - File("Roster/UnitTest/TableRosterTest.cpp"), - File("UnitTest/PreviousStatusStoreTest.cpp"), - File("UnitTest/PresenceNotifierTest.cpp"), - File("Chat/UnitTest/ChatsManagerTest.cpp"), - File("Chat/UnitTest/MUCControllerTest.cpp"), - File("Chat/UnitTest/ChatMessageParserTest.cpp"), - File("UnitTest/MockChatWindow.cpp"), - File("UnitTest/ChatMessageSummarizerTest.cpp"), - File("Settings/UnitTest/SettingsProviderHierachyTest.cpp"), - File("UnitTest/HighlightRuleTest.cpp"), - File("UnitTest/ContactSuggesterTest.cpp") - ]) + env.Append(UNITTEST_SOURCES = [ + File("Roster/UnitTest/RosterControllerTest.cpp"), + File("Roster/UnitTest/RosterTest.cpp"), + File("Roster/UnitTest/LeastCommonSubsequenceTest.cpp"), + File("Roster/UnitTest/TableRosterTest.cpp"), + File("UnitTest/PreviousStatusStoreTest.cpp"), + File("UnitTest/PresenceNotifierTest.cpp"), + File("Chat/UnitTest/ChatsManagerTest.cpp"), + File("Chat/UnitTest/MUCControllerTest.cpp"), + File("Chat/UnitTest/ChatMessageParserTest.cpp"), + File("UnitTest/MockChatWindow.cpp"), + File("UnitTest/ChatMessageSummarizerTest.cpp"), + File("Settings/UnitTest/SettingsProviderHierachyTest.cpp"), + File("UnitTest/HighlightRuleTest.cpp"), + File("UnitTest/ContactSuggesterTest.cpp") + ]) diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript index e3a8d39..9c3d0af 100644 --- a/Swift/QtUI/SConscript +++ b/Swift/QtUI/SConscript @@ -2,20 +2,20 @@ import os, datetime, re, time import Version def generateQRCTheme(dir, prefix) : - sourceDir = dir.abspath - result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n" - result += "<RCC version =\"1.0\">" - result += "<qresource prefix=\"/themes/" + prefix + "\">" - for (path, dirs, files) in os.walk(sourceDir) : - for file in files : - filePath = os.path.join(path,file) - result += "<file alias=\"%(alias)s\">%(path)s</file>" % { - "alias": filePath[len(sourceDir)+1:], - "path": filePath - } - result += "</qresource>" - result += "</RCC>" - return result + sourceDir = dir.abspath + result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n" + result += "<RCC version =\"1.0\">" + result += "<qresource prefix=\"/themes/" + prefix + "\">" + for (path, dirs, files) in os.walk(sourceDir) : + for file in files : + filePath = os.path.join(path,file) + result += "<file alias=\"%(alias)s\">%(path)s</file>" % { + "alias": filePath[len(sourceDir)+1:], + "path": filePath + } + result += "</qresource>" + result += "</RCC>" + return result Import("env") @@ -24,33 +24,33 @@ myenv = env.Clone() # Disable warnings that affect Qt myenv["CXXFLAGS"] = filter(lambda x : x != "-Wfloat-equal", myenv["CXXFLAGS"]) if "clang" in env["CC"] : - myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"]) + myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"]) myenv.UseFlags(env["SWIFT_CONTROLLERS_FLAGS"]) myenv.UseFlags(env["SWIFTOOLS_FLAGS"]) if myenv["HAVE_XSS"] : - myenv.UseFlags(env["XSS_FLAGS"]) + myenv.UseFlags(env["XSS_FLAGS"]) if env["PLATFORM"] == "posix" : - myenv.Append(LIBS = ["X11"]) + myenv.Append(LIBS = ["X11"]) if myenv["HAVE_SPARKLE"] : - myenv.UseFlags(env["SPARKLE_FLAGS"]) + myenv.UseFlags(env["SPARKLE_FLAGS"]) myenv.UseFlags(env["SWIFTEN_FLAGS"]) myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"]) if myenv.get("HAVE_BREAKPAD") : - myenv.UseFlags(env["BREAKPAD_FLAGS"]) + myenv.UseFlags(env["BREAKPAD_FLAGS"]) if myenv.get("HAVE_GROWL", False) : - myenv.UseFlags(myenv["GROWL_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_GROWL"]) + myenv.UseFlags(myenv["GROWL_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_GROWL"]) if myenv["swift_mobile"] : - myenv.Append(CPPDEFINES = ["SWIFT_MOBILE"]) + myenv.Append(CPPDEFINES = ["SWIFT_MOBILE"]) if myenv.get("HAVE_SNARL", False) : - myenv.UseFlags(myenv["SNARL_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_SNARL"]) + myenv.UseFlags(myenv["SNARL_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_SNARL"]) if myenv.get("HAVE_HUNSPELL", True): - myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"]) - myenv.UseFlags(myenv["HUNSPELL_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"]) + myenv.UseFlags(myenv["HUNSPELL_FLAGS"]) if env["PLATFORM"] == "win32" : - myenv.Append(LIBS = ["cryptui"]) + myenv.Append(LIBS = ["cryptui"]) myenv.UseFlags(myenv["PLATFORM_FLAGS"]) myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"]) @@ -59,174 +59,174 @@ myenv.Tool("wix", toolpath = ["#/BuildTools/SCons/Tools"]) myenv.Tool("textfile", toolpath = ["#/BuildTools/SCons/Tools"]) qt4modules = ['QtCore', 'QtWebKit', 'QtGui'] if myenv["qt5"] : - qt_version = '5' - qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia'] - if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : - qt4modules += ['QtX11Extras'] + qt_version = '5' + qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia'] + if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : + qt4modules += ['QtX11Extras'] else : - qt_version = '4' + qt_version = '4' if env["PLATFORM"] == "posix" : - qt4modules += ["QtDBus"] + qt4modules += ["QtDBus"] if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" : - qt4modules += ["QtNetwork"] + qt4modules += ["QtNetwork"] myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version) if env["PLATFORM"] == "win32" : - #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"]) - myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) - myenv.Append(LIBS = "qtmain") - if myenv.get("HAVE_SCHANNEL", 0) : - myenv.Append(LIBS = "Cryptui") - myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") - if env["debug"] and not env["optimize"]: - myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"]) + #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"]) + myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) + myenv.Append(LIBS = "qtmain") + if myenv.get("HAVE_SCHANNEL", 0) : + myenv.Append(LIBS = "Cryptui") + myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") + if env["debug"] and not env["optimize"]: + myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"]) myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateQRCTheme(myenv.Dir("#/Swift/resources/themes/Default"), "Default"))) sources = [ - "main.cpp", - "QtAboutWidget.cpp", - "QtSpellCheckerWindow.cpp", - "QtAvatarWidget.cpp", - "QtUIFactory.cpp", - "QtChatWindowFactory.cpp", - "QtClickableLabel.cpp", - "QtLoginWindow.cpp", - "QtMainWindow.cpp", - "QtProfileWindow.cpp", - "QtBlockListEditorWindow.cpp", - "QtNameWidget.cpp", - "QtSettingsProvider.cpp", - "QtStatusWidget.cpp", - "QtScaledAvatarCache.cpp", - "QtSwift.cpp", - "QtURIHandler.cpp", - "QtChatWindow.cpp", - "QtChatView.cpp", - "QtWebKitChatView.cpp", - "QtPlainChatView.cpp", - "QtChatTheme.cpp", - "QtChatTabs.cpp", - "QtChatTabsBase.cpp", - "QtChatTabsShortcutOnlySubstitute.cpp", - "QtSoundPlayer.cpp", - "QtSystemTray.cpp", - "QtCachedImageScaler.cpp", - "QtTabbable.cpp", - "QtTabWidget.cpp", - "QtTextEdit.cpp", - "QtXMLConsoleWidget.cpp", - "QtHistoryWindow.cpp", - "QtFileTransferListWidget.cpp", - "QtFileTransferListItemModel.cpp", - "QtAdHocCommandWindow.cpp", - "QtAdHocCommandWithJIDWindow.cpp", - "QtUtilities.cpp", - "QtBookmarkDetailWindow.cpp", - "QtAddBookmarkWindow.cpp", - "QtEditBookmarkWindow.cpp", - "QtEmoticonsGrid.cpp", - "QtEmoticonCell.cpp", - "QtContactEditWindow.cpp", - "QtContactEditWidget.cpp", - "QtSingleWindow.cpp", - "QtHighlightEditor.cpp", - "QtColorToolButton.cpp", - "QtClosableLineEdit.cpp", - "ChatSnippet.cpp", - "MessageSnippet.cpp", - "SystemMessageSnippet.cpp", - "QtElidingLabel.cpp", - "QtFormWidget.cpp", - "QtFormResultItemModel.cpp", - "QtLineEdit.cpp", - "QtJoinMUCWindow.cpp", - "QtConnectionSettingsWindow.cpp", - "Roster/RosterModel.cpp", - "Roster/QtTreeWidget.cpp", -# "Roster/QtTreeWidgetItem.cpp", - "Roster/RosterDelegate.cpp", - "Roster/GroupItemDelegate.cpp", - "Roster/DelegateCommons.cpp", - "Roster/QtFilterWidget.cpp", - "Roster/QtRosterWidget.cpp", - "Roster/QtOccupantListWidget.cpp", - "Roster/RosterTooltip.cpp", - "EventViewer/EventModel.cpp", - "EventViewer/EventDelegate.cpp", - "EventViewer/TwoLineDelegate.cpp", - "EventViewer/QtEventWindow.cpp", - "EventViewer/QtEvent.cpp", - "ChatList/QtChatListWindow.cpp", - "ChatList/ChatListModel.cpp", - "ChatList/ChatListDelegate.cpp", - "ChatList/ChatListMUCItem.cpp", - "ChatList/ChatListRecentItem.cpp", - "ChatList/ChatListWhiteboardItem.cpp", - "MUCSearch/QtMUCSearchWindow.cpp", - "MUCSearch/MUCSearchModel.cpp", - "MUCSearch/MUCSearchRoomItem.cpp", - "MUCSearch/MUCSearchEmptyItem.cpp", - "MUCSearch/MUCSearchDelegate.cpp", - "UserSearch/ContactListDelegate.cpp", - "UserSearch/ContactListModel.cpp", - "UserSearch/QtContactListWidget.cpp", - "UserSearch/QtSuggestingJIDInput.cpp", - "UserSearch/QtUserSearchFirstPage.cpp", - "UserSearch/QtUserSearchFirstMultiJIDPage.cpp", - "UserSearch/QtUserSearchFieldsPage.cpp", - "UserSearch/QtUserSearchResultsPage.cpp", - "UserSearch/QtUserSearchDetailsPage.cpp", - "UserSearch/QtUserSearchWindow.cpp", - "UserSearch/UserSearchModel.cpp", - "UserSearch/UserSearchDelegate.cpp", - "Whiteboard/FreehandLineItem.cpp", - "Whiteboard/GView.cpp", - "Whiteboard/TextDialog.cpp", - "Whiteboard/QtWhiteboardWindow.cpp", - "Whiteboard/ColorWidget.cpp", - "QtSubscriptionRequestWindow.cpp", - "QtRosterHeader.cpp", - "QtWebView.cpp", - "qrc_DefaultTheme.cc", - "qrc_Swift.cc", - "QtChatWindowJSBridge.cpp", - "QtMUCConfigurationWindow.cpp", - "QtAffiliationEditor.cpp", - "QtUISettingConstants.cpp", - "QtURLValidator.cpp", - "QtResourceHelper.cpp", - "QtSpellCheckHighlighter.cpp", - "Trellis/QtDynamicGridLayout.cpp", - "Trellis/QtDNDTabBar.cpp", - "Trellis/QtGridSelectionDialog.cpp" + "main.cpp", + "QtAboutWidget.cpp", + "QtSpellCheckerWindow.cpp", + "QtAvatarWidget.cpp", + "QtUIFactory.cpp", + "QtChatWindowFactory.cpp", + "QtClickableLabel.cpp", + "QtLoginWindow.cpp", + "QtMainWindow.cpp", + "QtProfileWindow.cpp", + "QtBlockListEditorWindow.cpp", + "QtNameWidget.cpp", + "QtSettingsProvider.cpp", + "QtStatusWidget.cpp", + "QtScaledAvatarCache.cpp", + "QtSwift.cpp", + "QtURIHandler.cpp", + "QtChatWindow.cpp", + "QtChatView.cpp", + "QtWebKitChatView.cpp", + "QtPlainChatView.cpp", + "QtChatTheme.cpp", + "QtChatTabs.cpp", + "QtChatTabsBase.cpp", + "QtChatTabsShortcutOnlySubstitute.cpp", + "QtSoundPlayer.cpp", + "QtSystemTray.cpp", + "QtCachedImageScaler.cpp", + "QtTabbable.cpp", + "QtTabWidget.cpp", + "QtTextEdit.cpp", + "QtXMLConsoleWidget.cpp", + "QtHistoryWindow.cpp", + "QtFileTransferListWidget.cpp", + "QtFileTransferListItemModel.cpp", + "QtAdHocCommandWindow.cpp", + "QtAdHocCommandWithJIDWindow.cpp", + "QtUtilities.cpp", + "QtBookmarkDetailWindow.cpp", + "QtAddBookmarkWindow.cpp", + "QtEditBookmarkWindow.cpp", + "QtEmoticonsGrid.cpp", + "QtEmoticonCell.cpp", + "QtContactEditWindow.cpp", + "QtContactEditWidget.cpp", + "QtSingleWindow.cpp", + "QtHighlightEditor.cpp", + "QtColorToolButton.cpp", + "QtClosableLineEdit.cpp", + "ChatSnippet.cpp", + "MessageSnippet.cpp", + "SystemMessageSnippet.cpp", + "QtElidingLabel.cpp", + "QtFormWidget.cpp", + "QtFormResultItemModel.cpp", + "QtLineEdit.cpp", + "QtJoinMUCWindow.cpp", + "QtConnectionSettingsWindow.cpp", + "Roster/RosterModel.cpp", + "Roster/QtTreeWidget.cpp", +# "Roster/QtTreeWidgetItem.cpp", + "Roster/RosterDelegate.cpp", + "Roster/GroupItemDelegate.cpp", + "Roster/DelegateCommons.cpp", + "Roster/QtFilterWidget.cpp", + "Roster/QtRosterWidget.cpp", + "Roster/QtOccupantListWidget.cpp", + "Roster/RosterTooltip.cpp", + "EventViewer/EventModel.cpp", + "EventViewer/EventDelegate.cpp", + "EventViewer/TwoLineDelegate.cpp", + "EventViewer/QtEventWindow.cpp", + "EventViewer/QtEvent.cpp", + "ChatList/QtChatListWindow.cpp", + "ChatList/ChatListModel.cpp", + "ChatList/ChatListDelegate.cpp", + "ChatList/ChatListMUCItem.cpp", + "ChatList/ChatListRecentItem.cpp", + "ChatList/ChatListWhiteboardItem.cpp", + "MUCSearch/QtMUCSearchWindow.cpp", + "MUCSearch/MUCSearchModel.cpp", + "MUCSearch/MUCSearchRoomItem.cpp", + "MUCSearch/MUCSearchEmptyItem.cpp", + "MUCSearch/MUCSearchDelegate.cpp", + "UserSearch/ContactListDelegate.cpp", + "UserSearch/ContactListModel.cpp", + "UserSearch/QtContactListWidget.cpp", + "UserSearch/QtSuggestingJIDInput.cpp", + "UserSearch/QtUserSearchFirstPage.cpp", + "UserSearch/QtUserSearchFirstMultiJIDPage.cpp", + "UserSearch/QtUserSearchFieldsPage.cpp", + "UserSearch/QtUserSearchResultsPage.cpp", + "UserSearch/QtUserSearchDetailsPage.cpp", + "UserSearch/QtUserSearchWindow.cpp", + "UserSearch/UserSearchModel.cpp", + "UserSearch/UserSearchDelegate.cpp", + "Whiteboard/FreehandLineItem.cpp", + "Whiteboard/GView.cpp", + "Whiteboard/TextDialog.cpp", + "Whiteboard/QtWhiteboardWindow.cpp", + "Whiteboard/ColorWidget.cpp", + "QtSubscriptionRequestWindow.cpp", + "QtRosterHeader.cpp", + "QtWebView.cpp", + "qrc_DefaultTheme.cc", + "qrc_Swift.cc", + "QtChatWindowJSBridge.cpp", + "QtMUCConfigurationWindow.cpp", + "QtAffiliationEditor.cpp", + "QtUISettingConstants.cpp", + "QtURLValidator.cpp", + "QtResourceHelper.cpp", + "QtSpellCheckHighlighter.cpp", + "Trellis/QtDynamicGridLayout.cpp", + "Trellis/QtDNDTabBar.cpp", + "Trellis/QtGridSelectionDialog.cpp" ] if env["PLATFORM"] == "win32" : - sources.extend(["qrc_SwiftWindows.cc"]) + sources.extend(["qrc_SwiftWindows.cc"]) # QtVCardWidget sources.extend([ - "QtVCardWidget/QtCloseButton.cpp", - "QtVCardWidget/QtRemovableItemDelegate.cpp", - "QtVCardWidget/QtResizableLineEdit.cpp", - "QtVCardWidget/QtTagComboBox.cpp", - "QtVCardWidget/QtVCardHomeWork.cpp", - "QtVCardWidget/QtVCardAddressField.cpp", - "QtVCardWidget/QtVCardAddressLabelField.cpp", - "QtVCardWidget/QtVCardBirthdayField.cpp", - "QtVCardWidget/QtVCardDescriptionField.cpp", - "QtVCardWidget/QtVCardInternetEMailField.cpp", - "QtVCardWidget/QtVCardJIDField.cpp", - "QtVCardWidget/QtVCardOrganizationField.cpp", - "QtVCardWidget/QtVCardPhotoAndNameFields.cpp", - "QtVCardWidget/QtVCardRoleField.cpp", - "QtVCardWidget/QtVCardTelephoneField.cpp", - "QtVCardWidget/QtVCardTitleField.cpp", - "QtVCardWidget/QtVCardURLField.cpp", - "QtVCardWidget/QtVCardGeneralField.cpp", - "QtVCardWidget/QtVCardWidget.cpp" + "QtVCardWidget/QtCloseButton.cpp", + "QtVCardWidget/QtRemovableItemDelegate.cpp", + "QtVCardWidget/QtResizableLineEdit.cpp", + "QtVCardWidget/QtTagComboBox.cpp", + "QtVCardWidget/QtVCardHomeWork.cpp", + "QtVCardWidget/QtVCardAddressField.cpp", + "QtVCardWidget/QtVCardAddressLabelField.cpp", + "QtVCardWidget/QtVCardBirthdayField.cpp", + "QtVCardWidget/QtVCardDescriptionField.cpp", + "QtVCardWidget/QtVCardInternetEMailField.cpp", + "QtVCardWidget/QtVCardJIDField.cpp", + "QtVCardWidget/QtVCardOrganizationField.cpp", + "QtVCardWidget/QtVCardPhotoAndNameFields.cpp", + "QtVCardWidget/QtVCardRoleField.cpp", + "QtVCardWidget/QtVCardTelephoneField.cpp", + "QtVCardWidget/QtVCardTitleField.cpp", + "QtVCardWidget/QtVCardURLField.cpp", + "QtVCardWidget/QtVCardGeneralField.cpp", + "QtVCardWidget/QtVCardWidget.cpp" ]) myenv.Uic4("QtVCardWidget/QtVCardPhotoAndNameFields.ui") @@ -237,52 +237,52 @@ myenv.Uic4("QtProfileWindow.ui") # Determine the version myenv["SWIFT_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift") if env["PLATFORM"] == "win32" : - swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"]) - myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0] - myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1] - myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2] + swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"]) + myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0] + myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1] + myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2] if env["PLATFORM"] == "win32" : - res_env = myenv.Clone() - res_env.Append(CPPDEFINES = [ - ("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])), - ("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"), - ("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"), - ("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"), - ]) - res = res_env.RES("#/Swift/resources/Windows/Swift.rc") - # For some reason, SCons isn't picking up the dependency correctly - # Adding it explicitly until i figure out why - myenv.Depends(res, "../Controllers/BuildVersion.h") - sources += [ - "WinUIHelpers.cpp", - "CAPICertificateSelector.cpp", - "WindowsNotifier.cpp", - "#/Swift/resources/Windows/Swift.res" - ] + res_env = myenv.Clone() + res_env.Append(CPPDEFINES = [ + ("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])), + ("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"), + ("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"), + ("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"), + ]) + res = res_env.RES("#/Swift/resources/Windows/Swift.rc") + # For some reason, SCons isn't picking up the dependency correctly + # Adding it explicitly until i figure out why + myenv.Depends(res, "../Controllers/BuildVersion.h") + sources += [ + "WinUIHelpers.cpp", + "CAPICertificateSelector.cpp", + "WindowsNotifier.cpp", + "#/Swift/resources/Windows/Swift.res" + ] if env["PLATFORM"] == "posix" : - sources += [ - "FreeDesktopNotifier.cpp", - "QtDBUSURIHandler.cpp", - ] + sources += [ + "FreeDesktopNotifier.cpp", + "QtDBUSURIHandler.cpp", + ] if env["PLATFORM"] == "darwin" : - sources += ["CocoaApplicationActivateHelper.mm"] - sources += ["CocoaUIHelpers.mm"] + sources += ["CocoaApplicationActivateHelper.mm"] + sources += ["CocoaUIHelpers.mm"] if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" : - swiftProgram = myenv.Program("Swift", sources) + swiftProgram = myenv.Program("Swift", sources) else : - sources += ["QtCertificateViewerDialog.cpp"]; - myenv.Uic4("QtCertificateViewerDialog.ui"); - swiftProgram = myenv.Program("swift-im", sources) + sources += ["QtCertificateViewerDialog.cpp"]; + myenv.Uic4("QtCertificateViewerDialog.ui"); + swiftProgram = myenv.Program("swift-im", sources) if env["PLATFORM"] != "darwin" and env["PLATFORM"] != "win32" : - openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp") + openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp") else : - openURIProgram = [] + openURIProgram = [] myenv.Uic4("MUCSearch/QtMUCSearchWindow.ui") myenv.Uic4("UserSearch/QtUserSearchWizard.ui") @@ -302,11 +302,11 @@ myenv.Qrc("DefaultTheme.qrc") myenv.Qrc("Swift.qrc") if env["PLATFORM"] == "win32" : - myenv.Qrc("SwiftWindows.qrc") + myenv.Qrc("SwiftWindows.qrc") # Resources commonResources = { - "": ["#/Swift/resources/sounds"] + "": ["#/Swift/resources/sounds"] } myenv["TEXTFILESUFFIX"] = "" @@ -319,138 +319,138 @@ myenv.MyTextfile(target = "COPYING", source = [myenv.File("../../COPYING.gpl"), # Collect available languages translation_languages = [] for file in os.listdir(Dir("#/Swift/Translations").abspath) : - if file.startswith("swift_") and file.endswith(".ts") : - translation_languages.append(file[6:-3]) + if file.startswith("swift_") and file.endswith(".ts") : + translation_languages.append(file[6:-3]) # Generate translation modules translation_sources = [env.File("#/Swift/Translations/swift.ts").abspath] translation_modules = [] for lang in translation_languages : - translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm" - translation_source = "#/Swift/Translations/swift_" + lang + ".ts" - translation_sources.append(env.File(translation_source).abspath) - translation_modules.append(env.File(translation_resource).abspath) - myenv.Qm(translation_resource, translation_source) - commonResources["translations"] = commonResources.get("translations", []) + [translation_resource] + translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm" + translation_source = "#/Swift/Translations/swift_" + lang + ".ts" + translation_sources.append(env.File(translation_source).abspath) + translation_modules.append(env.File(translation_resource).abspath) + myenv.Qm(translation_resource, translation_source) + commonResources["translations"] = commonResources.get("translations", []) + [translation_resource] # LUpdate translation (if requested) if ARGUMENTS.get("update_translations", False) : - myenv.Precious(translation_sources) - remove_obsolete_option = "" - codecfortr = "" - if ARGUMENTS.get("remove_obsolete_translations", False) : - remove_obsolete_option = " -no-obsolete" - if qt_version == '4': - codecfortr = "-codecfortr UTF-8" - for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) : - t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")]) - myenv.AlwaysBuild(t) + myenv.Precious(translation_sources) + remove_obsolete_option = "" + codecfortr = "" + if ARGUMENTS.get("remove_obsolete_translations", False) : + remove_obsolete_option = " -no-obsolete" + if qt_version == '4': + codecfortr = "-codecfortr UTF-8" + for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) : + t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")]) + myenv.AlwaysBuild(t) # NSIS installation script if env["PLATFORM"] == "win32" : - nsis_translation_install_script = "" - nsis_translation_uninstall_script = "" - for lang in translation_languages : - nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n" - nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n" - myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script)) - myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script)) + nsis_translation_install_script = "" + nsis_translation_uninstall_script = "" + for lang in translation_languages : + nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n" + nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n" + myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script)) + myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script)) ################################################################################ if env["PLATFORM"] == "darwin" : - frameworks = [] - if env["HAVE_SPARKLE"] : - frameworks.append(env["SPARKLE_FRAMEWORK"]) - if env["HAVE_GROWL"] : - frameworks.append(env["GROWL_FRAMEWORK"]) - commonResources[""] = commonResources.get("", []) + ["#/Swift/resources/MacOSX/Swift.icns"] - app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = commonResources, frameworks = frameworks, handlesXMPPURIs = True) - if env["DIST"] : - myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"]) - dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"]) - myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"]) + frameworks = [] + if env["HAVE_SPARKLE"] : + frameworks.append(env["SPARKLE_FRAMEWORK"]) + if env["HAVE_GROWL"] : + frameworks.append(env["GROWL_FRAMEWORK"]) + commonResources[""] = commonResources.get("", []) + ["#/Swift/resources/MacOSX/Swift.icns"] + app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = commonResources, frameworks = frameworks, handlesXMPPURIs = True) + if env["DIST"] : + myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"]) + dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"]) + myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"]) if env.get("SWIFT_INSTALLDIR", "") : - env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram + openURIProgram) - env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm") - icons_path = os.path.join(env["SWIFT_INSTALLDIR"], "share", "icons", "hicolor") - env.InstallAs(os.path.join(icons_path, "32x32", "apps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm") - env.InstallAs(os.path.join(icons_path, "scalable", "apps", "swift.svg"), "#/Swift/resources/logo/logo-icon.svg") - for i in ["16", "22", "24", "64", "128"] : - env.InstallAs(os.path.join(icons_path, i + "x" + i, "apps", "swift.png"), "#/Swift/resources/logo/logo-icon-" + i + ".png") - env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "#/Swift/resources/swift.desktop") - for dir, resource in commonResources.items() : - env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift", dir), resource) + env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram + openURIProgram) + env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm") + icons_path = os.path.join(env["SWIFT_INSTALLDIR"], "share", "icons", "hicolor") + env.InstallAs(os.path.join(icons_path, "32x32", "apps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm") + env.InstallAs(os.path.join(icons_path, "scalable", "apps", "swift.svg"), "#/Swift/resources/logo/logo-icon.svg") + for i in ["16", "22", "24", "64", "128"] : + env.InstallAs(os.path.join(icons_path, i + "x" + i, "apps", "swift.png"), "#/Swift/resources/logo/logo-icon-" + i + ".png") + env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "#/Swift/resources/swift.desktop") + for dir, resource in commonResources.items() : + env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift", dir), resource) if env["PLATFORM"] == "win32" : - if env["DIST"] or ARGUMENTS.get("dump_trace") : - commonResources[""] = commonResources.get("", []) + [ - #os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"), - #os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"), - "#/Swift/resources/images", - ] - if env["SWIFTEN_DLL"] : - commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"] - qtplugins = {} - qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"] - qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"] - if qt_version == '4' : - qtlibs.append("phonon") - qtlibs = [lib + '4' for lib in qtlibs] - else : - qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport'] - qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs] - qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL'] - qtplugins["platforms"] = ['windows'] - qtplugins["accessible"] = ["taccessiblewidgets"] - - windowsBundleFiles = myenv.WindowsBundle("Swift", - resources = commonResources, - qtplugins = qtplugins, - qtlibs = qtlibs, - qtversion = qt_version) - - if env["DIST"] : - #myenv.Append(NSIS_OPTIONS = [ - # "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", - # "/DbuildVersion=" + myenv["SWIFT_VERSION"] - # ]) - #myenv.Nsis("../Packaging/nsis/swift.nsi") - if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None): - def convertToRTF(env, target, source) : - infile = open(source[0].abspath, 'r') - outfile = open(target[0].abspath, 'w') - outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n') - for line in infile: - for char in line.decode("utf-8") : - if ord(char) > 127 : - # FIXME: This is incorrect, because it only works for latin1. - # The correct way is \u<decimal utf16 point>? , but this is more - # work - outfile.write("\\'%X" % ord(char)) - else : - outfile.write(char) - outfile.write('\\par ') - outfile.write('}') - outfile.close() - infile.close() - copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF) - wixvariables = { - 'VCCRTFile': env["vcredist"], - 'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"]) - } - wixincludecontent = "<Include>" - for key in wixvariables: - wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key]) - wixincludecontent += "</Include>" - myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent)) - myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift" - myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying) - myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs') - myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs') - myenv.WiX_Light('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj']) - - if myenv["debug"] : - myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb") + if env["DIST"] or ARGUMENTS.get("dump_trace") : + commonResources[""] = commonResources.get("", []) + [ + #os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"), + #os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"), + "#/Swift/resources/images", + ] + if env["SWIFTEN_DLL"] : + commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"] + qtplugins = {} + qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"] + qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"] + if qt_version == '4' : + qtlibs.append("phonon") + qtlibs = [lib + '4' for lib in qtlibs] + else : + qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport'] + qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs] + qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL'] + qtplugins["platforms"] = ['windows'] + qtplugins["accessible"] = ["taccessiblewidgets"] + + windowsBundleFiles = myenv.WindowsBundle("Swift", + resources = commonResources, + qtplugins = qtplugins, + qtlibs = qtlibs, + qtversion = qt_version) + + if env["DIST"] : + #myenv.Append(NSIS_OPTIONS = [ + # "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", + # "/DbuildVersion=" + myenv["SWIFT_VERSION"] + # ]) + #myenv.Nsis("../Packaging/nsis/swift.nsi") + if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None): + def convertToRTF(env, target, source) : + infile = open(source[0].abspath, 'r') + outfile = open(target[0].abspath, 'w') + outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n') + for line in infile: + for char in line.decode("utf-8") : + if ord(char) > 127 : + # FIXME: This is incorrect, because it only works for latin1. + # The correct way is \u<decimal utf16 point>? , but this is more + # work + outfile.write("\\'%X" % ord(char)) + else : + outfile.write(char) + outfile.write('\\par ') + outfile.write('}') + outfile.close() + infile.close() + copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF) + wixvariables = { + 'VCCRTFile': env["vcredist"], + 'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"]) + } + wixincludecontent = "<Include>" + for key in wixvariables: + wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key]) + wixincludecontent += "</Include>" + myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent)) + myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift" + myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying) + myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs') + myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs') + myenv.WiX_Light('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj']) + + if myenv["debug"] : + myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb") diff --git a/Swiften/AdHoc/SConscript b/Swiften/AdHoc/SConscript index 69c9083..6d3f176 100644 --- a/Swiften/AdHoc/SConscript +++ b/Swiften/AdHoc/SConscript @@ -1,6 +1,6 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "OutgoingAdHocCommandSession.cpp", - ]) + "OutgoingAdHocCommandSession.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Avatars/SConscript b/Swiften/Avatars/SConscript index 9c219a4..0cd419d 100644 --- a/Swiften/Avatars/SConscript +++ b/Swiften/Avatars/SConscript @@ -1,13 +1,13 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "VCardUpdateAvatarManager.cpp", - "VCardAvatarManager.cpp", - "OfflineAvatarManager.cpp", - "AvatarManager.cpp", - "AvatarManagerImpl.cpp", - "AvatarStorage.cpp", - "AvatarProvider.cpp", - "CombinedAvatarProvider.cpp", - ]) + "VCardUpdateAvatarManager.cpp", + "VCardAvatarManager.cpp", + "OfflineAvatarManager.cpp", + "AvatarManager.cpp", + "AvatarManagerImpl.cpp", + "AvatarStorage.cpp", + "AvatarProvider.cpp", + "CombinedAvatarProvider.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Base/SConscript b/Swiften/Base/SConscript index d7fd7cc..62e5117 100644 --- a/Swiften/Base/SConscript +++ b/Swiften/Base/SConscript @@ -1,22 +1,22 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "ByteArray.cpp", - "DateTime.cpp", - "SafeByteArray.cpp", - "SafeAllocator.cpp", - "Error.cpp", - "Log.cpp", - "Path.cpp", - "Paths.cpp", - "String.cpp", - "IDGenerator.cpp", - "SimpleIDGenerator.cpp", - "RandomGenerator.cpp", - "BoostRandomGenerator.cpp", - "sleep.cpp", - "URL.cpp", - "Regex.cpp", - "FileSize.cpp" - ]) + "ByteArray.cpp", + "DateTime.cpp", + "SafeByteArray.cpp", + "SafeAllocator.cpp", + "Error.cpp", + "Log.cpp", + "Path.cpp", + "Paths.cpp", + "String.cpp", + "IDGenerator.cpp", + "SimpleIDGenerator.cpp", + "RandomGenerator.cpp", + "BoostRandomGenerator.cpp", + "sleep.cpp", + "URL.cpp", + "Regex.cpp", + "FileSize.cpp" + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Component/SConscript b/Swiften/Component/SConscript index ef5700c..2553ac6 100644 --- a/Swiften/Component/SConscript +++ b/Swiften/Component/SConscript @@ -1,13 +1,13 @@ Import("swiften_env") sources = [ - "ComponentHandshakeGenerator.cpp", - "ComponentConnector.cpp", - "ComponentSession.cpp", - "ComponentSessionStanzaChannel.cpp", - "CoreComponent.cpp", - "Component.cpp", - "ComponentXMLTracer.cpp", - ] + "ComponentHandshakeGenerator.cpp", + "ComponentConnector.cpp", + "ComponentSession.cpp", + "ComponentSessionStanzaChannel.cpp", + "CoreComponent.cpp", + "Component.cpp", + "ComponentXMLTracer.cpp", + ] swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources)) diff --git a/Swiften/Config/SConscript b/Swiften/Config/SConscript index 837884b..6eddb0e 100644 --- a/Swiften/Config/SConscript +++ b/Swiften/Config/SConscript @@ -3,16 +3,16 @@ import os.path Import("env") def replaceSwiftenPath(input) : - return input.replace(env.Dir("#").abspath, "#") + return input.replace(env.Dir("#").abspath, "#") def cStringVariable(env, cVar, sconsVar) : - result = "static const char* " + cVar + "[] = {\n" - # FIXME: Probably not very robust - for var in sconsVar.split(" ") : - result += "\t\"" + env.subst(var).replace("\\", "\\\\") + "\",\n" - result += "\t0\n" - result += "};\n" - return result + result = "static const char* " + cVar + "[] = {\n" + # FIXME: Probably not very robust + for var in sconsVar.split(" ") : + result += "\t\"" + env.subst(var).replace("\\", "\\\\") + "\",\n" + result += "\t0\n" + result += "};\n" + return result config_flags = "" @@ -21,36 +21,36 @@ swiften_env.UseFlags(swiften_env["SWIFTEN_FLAGS"]) swiften_env.UseFlags(swiften_env["SWIFTEN_DEP_FLAGS"]) cppflags = replaceSwiftenPath(" ".join([ - swiften_env.subst("$CPPFLAGS").replace("-isystem ","-I"), - swiften_env.subst("$_CPPDEFFLAGS"), - swiften_env.subst("$_CPPINCFLAGS")])) + swiften_env.subst("$CPPFLAGS").replace("-isystem ","-I"), + swiften_env.subst("$_CPPDEFFLAGS"), + swiften_env.subst("$_CPPINCFLAGS")])) config_flags += cStringVariable(swiften_env, "CPPFLAGS", cppflags) libflags = replaceSwiftenPath(" ".join([ - swiften_env.subst("$_LIBDIRFLAGS"), - swiften_env.subst("$_LIBFLAGS"), - swiften_env.subst("$_FRAMEWORKPATH"), - swiften_env.subst("$_FRAMEWORKS"), - swiften_env.subst("$_FRAMEWORKSFLAGS") - ])) + swiften_env.subst("$_LIBDIRFLAGS"), + swiften_env.subst("$_LIBFLAGS"), + swiften_env.subst("$_FRAMEWORKPATH"), + swiften_env.subst("$_FRAMEWORKS"), + swiften_env.subst("$_FRAMEWORKSFLAGS") + ])) config_flags += cStringVariable(swiften_env, "LIBFLAGS", libflags) config_env = env.Clone() # Create a local copy of Paths.cpp to avoid a Swiften dependency config_env.Install(".", [ - "#/Swiften/Base/Paths.cpp", - "#/Swiften/Base/Path.cpp", - "#/Swiften/Base/String.cpp", + "#/Swiften/Base/Paths.cpp", + "#/Swiften/Base/Path.cpp", + "#/Swiften/Base/String.cpp", ]) config_env.UseFlags(config_env["BOOST_FLAGS"]) config_env.UseFlags(config_env["PLATFORM_FLAGS"]) config_env.WriteVal("swiften-config.h", config_env.Value(config_flags)) swiften_config = config_env.Program("swiften-config", [ - "Paths.cpp", - "Path.cpp", - "String.cpp", - "swiften-config.cpp" - ]) + "Paths.cpp", + "Path.cpp", + "String.cpp", + "swiften-config.cpp" + ]) if swiften_env.get("SWIFTEN_INSTALLDIR", "") : - swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "bin"), swiften_config) + swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "bin"), swiften_config) diff --git a/Swiften/Crypto/SConscript b/Swiften/Crypto/SConscript index ce4bdae..d5532fd 100644 --- a/Swiften/Crypto/SConscript +++ b/Swiften/Crypto/SConscript @@ -2,27 +2,27 @@ Import("swiften_env", "env") objects = swiften_env.SwiftenObject([
- "CryptoProvider.cpp",
- "Hash.cpp"
+ "CryptoProvider.cpp",
+ "Hash.cpp"
])
myenv = swiften_env.Clone()
if myenv["PLATFORM"] == "win32" :
- objects += myenv.SwiftenObject(["WindowsCryptoProvider.cpp"])
+ objects += myenv.SwiftenObject(["WindowsCryptoProvider.cpp"])
if myenv.get("HAVE_OPENSSL", False) :
- myenv.Append(CPPDEFINES = ["HAVE_OPENSSL_CRYPTO_PROVIDER"])
- objects += myenv.SwiftenObject(["OpenSSLCryptoProvider.cpp"])
+ myenv.Append(CPPDEFINES = ["HAVE_OPENSSL_CRYPTO_PROVIDER"])
+ objects += myenv.SwiftenObject(["OpenSSLCryptoProvider.cpp"])
if myenv["PLATFORM"] == "darwin" and myenv["target"] == "native" :
- myenv.Append(CPPDEFINES = ["HAVE_COMMONCRYPTO_CRYPTO_PROVIDER"])
- objects += myenv.SwiftenObject(["CommonCryptoCryptoProvider.cpp"])
+ myenv.Append(CPPDEFINES = ["HAVE_COMMONCRYPTO_CRYPTO_PROVIDER"])
+ objects += myenv.SwiftenObject(["CommonCryptoCryptoProvider.cpp"])
objects += myenv.SwiftenObject(["PlatformCryptoProvider.cpp"])
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
if env["TEST"] :
- test_env = myenv.Clone()
- test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
- env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
- File("UnitTest/CryptoProviderTest.cpp"),
- ]))
+ test_env = myenv.Clone()
+ test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
+ env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
+ File("UnitTest/CryptoProviderTest.cpp"),
+ ]))
diff --git a/Swiften/Disco/SConscript b/Swiften/Disco/SConscript index 1779e26..15137ae 100644 --- a/Swiften/Disco/SConscript +++ b/Swiften/Disco/SConscript @@ -1,16 +1,16 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "CapsInfoGenerator.cpp", - "CapsManager.cpp", - "EntityCapsManager.cpp", - "EntityCapsProvider.cpp", - "DummyEntityCapsProvider.cpp", - "CapsStorage.cpp", - "ClientDiscoManager.cpp", - "DiscoInfoResponder.cpp", - "JIDDiscoInfoResponder.cpp", - "DiscoServiceWalker.cpp", - "FeatureOracle.cpp", - ]) + "CapsInfoGenerator.cpp", + "CapsManager.cpp", + "EntityCapsManager.cpp", + "EntityCapsProvider.cpp", + "DummyEntityCapsProvider.cpp", + "CapsStorage.cpp", + "ClientDiscoManager.cpp", + "DiscoInfoResponder.cpp", + "JIDDiscoInfoResponder.cpp", + "DiscoServiceWalker.cpp", + "FeatureOracle.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Entity/SConscript b/Swiften/Entity/SConscript index 1342ec1..284e0c0 100644 --- a/Swiften/Entity/SConscript +++ b/Swiften/Entity/SConscript @@ -1,6 +1,6 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "Entity.cpp", - ]) + "Entity.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/EventLoop/SConscript b/Swiften/EventLoop/SConscript index b810e8c..7aea53f 100644 --- a/Swiften/EventLoop/SConscript +++ b/Swiften/EventLoop/SConscript @@ -1,23 +1,23 @@ Import("swiften_env") sources = [ - "BoostASIOEventLoop.cpp", - "DummyEventLoop.cpp", - "Event.cpp", - "EventLoop.cpp", - "EventOwner.cpp", - "SimpleEventLoop.cpp", - "SingleThreadedEventLoop.cpp", - ] + "BoostASIOEventLoop.cpp", + "DummyEventLoop.cpp", + "Event.cpp", + "EventLoop.cpp", + "EventOwner.cpp", + "SimpleEventLoop.cpp", + "SingleThreadedEventLoop.cpp", + ] objects = swiften_env.SwiftenObject(sources) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) if swiften_env["PLATFORM"] == "darwin" and swiften_env["target"] == "native" or swiften_env["target"] == 'xcode': - myenv = swiften_env.Clone() - myenv.Append(CXXFLAGS = myenv["OBJCCFLAGS"]) - objects = myenv.SwiftenObject([ - "Cocoa/CocoaEventLoop.mm", - "Cocoa/CocoaEvent.mm" - ]) - swiften_env.Append(SWIFTEN_OBJECTS = [objects]) + myenv = swiften_env.Clone() + myenv.Append(CXXFLAGS = myenv["OBJCCFLAGS"]) + objects = myenv.SwiftenObject([ + "Cocoa/CocoaEventLoop.mm", + "Cocoa/CocoaEvent.mm" + ]) + swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Examples/LinkLocalTool/SConscript b/Swiften/Examples/LinkLocalTool/SConscript index 18eb91f..d7617ed 100644 --- a/Swiften/Examples/LinkLocalTool/SConscript +++ b/Swiften/Examples/LinkLocalTool/SConscript @@ -5,5 +5,5 @@ myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) linkLocalTool = myenv.Program("LinkLocalTool", [ - "main.cpp" - ]) + "main.cpp" + ]) diff --git a/Swiften/Examples/NetworkTool/SConscript b/Swiften/Examples/NetworkTool/SConscript index 38622ff..c850232 100644 --- a/Swiften/Examples/NetworkTool/SConscript +++ b/Swiften/Examples/NetworkTool/SConscript @@ -1,10 +1,10 @@ Import("env") if env["experimental"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv = env.Clone() + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) - linkLocalTool = myenv.Program("NetworkTool", [ - "main.cpp" - ]) + linkLocalTool = myenv.Program("NetworkTool", [ + "main.cpp" + ]) diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript index 8a0a48f..601cba2 100644 --- a/Swiften/Examples/SConscript +++ b/Swiften/Examples/SConscript @@ -3,12 +3,12 @@ Import("swiften_env") myenv = swiften_env.Clone() SConscript(dirs = [ - "SendMessage", - "SendFile", - "ConnectivityTest", - "LinkLocalTool", - "NetworkTool", - "ParserTester", - "BenchTool", - "MUCListAndJoin", + "SendMessage", + "SendFile", + "ConnectivityTest", + "LinkLocalTool", + "NetworkTool", + "ParserTester", + "BenchTool", + "MUCListAndJoin", ]) diff --git a/Swiften/FileTransfer/SConscript b/Swiften/FileTransfer/SConscript index 41af8d4..83f229b 100644 --- a/Swiften/FileTransfer/SConscript +++ b/Swiften/FileTransfer/SConscript @@ -1,52 +1,52 @@ Import("swiften_env", "env") sources = [ - "ByteArrayReadBytestream.cpp", - "OutgoingFileTransfer.cpp", - "OutgoingJingleFileTransfer.cpp", - "OutgoingFileTransferManager.cpp", - "IncomingFileTransfer.cpp", - "IncomingJingleFileTransfer.cpp", - "IncomingFileTransferManager.cpp", - "JingleFileTransfer.cpp", - "FileTransferOptions.cpp", - "FileTransferTransporter.cpp", - "FileTransferTransporterFactory.cpp", - "DefaultFileTransferTransporter.cpp", - "DefaultFileTransferTransporterFactory.cpp", - "RemoteJingleTransportCandidateSelector.cpp", - "LocalJingleTransportCandidateGenerator.cpp", - "ReadBytestream.cpp", - "WriteBytestream.cpp", - "FileReadBytestream.cpp", - "FileWriteBytestream.cpp", - "FileTransfer.cpp", - "TransportSession.cpp", - "IBBSendTransportSession.cpp", - "IBBReceiveTransportSession.cpp", - "SOCKS5BytestreamClientSession.cpp", - "SOCKS5BytestreamServerManager.cpp", - "SOCKS5BytestreamServer.cpp", - "SOCKS5BytestreamServerSession.cpp", - "SOCKS5BytestreamRegistry.cpp", - "SOCKS5BytestreamProxiesManager.cpp", - "SOCKS5BytestreamProxyFinder.cpp", - "IBBSendSession.cpp", - "IBBReceiveSession.cpp", - "FileTransferManager.cpp", - "FileTransferManagerImpl.cpp", - "IncrementalBytestreamHashCalculator.cpp", - "SOCKS5BytestreamServerResourceUser.cpp", - "SOCKS5BytestreamServerPortForwardingUser.cpp", - ] + "ByteArrayReadBytestream.cpp", + "OutgoingFileTransfer.cpp", + "OutgoingJingleFileTransfer.cpp", + "OutgoingFileTransferManager.cpp", + "IncomingFileTransfer.cpp", + "IncomingJingleFileTransfer.cpp", + "IncomingFileTransferManager.cpp", + "JingleFileTransfer.cpp", + "FileTransferOptions.cpp", + "FileTransferTransporter.cpp", + "FileTransferTransporterFactory.cpp", + "DefaultFileTransferTransporter.cpp", + "DefaultFileTransferTransporterFactory.cpp", + "RemoteJingleTransportCandidateSelector.cpp", + "LocalJingleTransportCandidateGenerator.cpp", + "ReadBytestream.cpp", + "WriteBytestream.cpp", + "FileReadBytestream.cpp", + "FileWriteBytestream.cpp", + "FileTransfer.cpp", + "TransportSession.cpp", + "IBBSendTransportSession.cpp", + "IBBReceiveTransportSession.cpp", + "SOCKS5BytestreamClientSession.cpp", + "SOCKS5BytestreamServerManager.cpp", + "SOCKS5BytestreamServer.cpp", + "SOCKS5BytestreamServerSession.cpp", + "SOCKS5BytestreamRegistry.cpp", + "SOCKS5BytestreamProxiesManager.cpp", + "SOCKS5BytestreamProxyFinder.cpp", + "IBBSendSession.cpp", + "IBBReceiveSession.cpp", + "FileTransferManager.cpp", + "FileTransferManagerImpl.cpp", + "IncrementalBytestreamHashCalculator.cpp", + "SOCKS5BytestreamServerResourceUser.cpp", + "SOCKS5BytestreamServerPortForwardingUser.cpp", + ] swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources)) env.Append(UNITTEST_SOURCES = [ - File("UnitTest/SOCKS5BytestreamServerSessionTest.cpp"), - File("UnitTest/SOCKS5BytestreamClientSessionTest.cpp"), - File("UnitTest/IBBSendSessionTest.cpp"), - File("UnitTest/IBBReceiveSessionTest.cpp"), - File("UnitTest/IncomingJingleFileTransferTest.cpp"), - File("UnitTest/OutgoingJingleFileTransferTest.cpp"), - ]) + File("UnitTest/SOCKS5BytestreamServerSessionTest.cpp"), + File("UnitTest/SOCKS5BytestreamClientSessionTest.cpp"), + File("UnitTest/IBBSendSessionTest.cpp"), + File("UnitTest/IBBReceiveSessionTest.cpp"), + File("UnitTest/IncomingJingleFileTransferTest.cpp"), + File("UnitTest/OutgoingJingleFileTransferTest.cpp"), + ]) diff --git a/Swiften/History/SConscript b/Swiften/History/SConscript index bd56818..65be489 100644 --- a/Swiften/History/SConscript +++ b/Swiften/History/SConscript @@ -2,10 +2,10 @@ Import("swiften_env") myenv = swiften_env.Clone() if myenv["target"] == "native": - myenv.MergeFlags(swiften_env.get("SQLITE_FLAGS", {})) + myenv.MergeFlags(swiften_env.get("SQLITE_FLAGS", {})) if myenv["experimental"]: - objects = myenv.SwiftenObject([ - "SQLiteHistoryStorage.cpp", - ]) - swiften_env.Append(SWIFTEN_OBJECTS = [objects]) + objects = myenv.SwiftenObject([ + "SQLiteHistoryStorage.cpp", + ]) + swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/IDN/SConscript b/Swiften/IDN/SConscript index 7a3c061..28596f7 100644 --- a/Swiften/IDN/SConscript +++ b/Swiften/IDN/SConscript @@ -5,27 +5,27 @@ objects = swiften_env.SwiftenObject(["IDNConverter.cpp"]) myenv = swiften_env.Clone() if myenv.get("NEED_IDN"): - myenv.Append(CPPDEFINES = ["NEED_IDN"]) + myenv.Append(CPPDEFINES = ["NEED_IDN"]) if myenv.get("HAVE_ICU") : - myenv.MergeFlags(swiften_env["ICU_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_ICU"]) - objects += myenv.SwiftenObject(["ICUConverter.cpp"]) + myenv.MergeFlags(swiften_env["ICU_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_ICU"]) + objects += myenv.SwiftenObject(["ICUConverter.cpp"]) if myenv.get("HAVE_LIBIDN") : - myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"]) - myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"]) - objects += myenv.SwiftenObject(["LibIDNConverter.cpp"]) + myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"]) + myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"]) + objects += myenv.SwiftenObject(["LibIDNConverter.cpp"]) objects += myenv.SwiftenObject([ - "PlatformIDNConverter.cpp" - ]) + "PlatformIDNConverter.cpp" + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) if env["TEST"] : - test_env = myenv.Clone() - test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"]) - env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([ - File("UnitTest/IDNConverterTest.cpp"), - File("UnitTest/UTF8ValidatorTest.cpp") - ])) + test_env = myenv.Clone() + test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"]) + env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([ + File("UnitTest/IDNConverterTest.cpp"), + File("UnitTest/UTF8ValidatorTest.cpp") + ])) diff --git a/Swiften/JID/SConscript b/Swiften/JID/SConscript index 12565fc..122388e 100644 --- a/Swiften/JID/SConscript +++ b/Swiften/JID/SConscript @@ -2,6 +2,6 @@ Import("swiften_env") myenv = swiften_env.Clone() objects = myenv.SwiftenObject([ - "JID.cpp", - ]) + "JID.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Jingle/SConscript b/Swiften/Jingle/SConscript index 546c1b2..4d25a78 100644 --- a/Swiften/Jingle/SConscript +++ b/Swiften/Jingle/SConscript @@ -1,14 +1,14 @@ Import("swiften_env") sources = [ - "JingleSession.cpp", - "JingleSessionListener.cpp", - "AbstractJingleSessionListener.cpp", - "JingleSessionImpl.cpp", - "IncomingJingleSessionHandler.cpp", - "JingleSessionManager.cpp", - "JingleResponder.cpp", - "FakeJingleSession.cpp", - ] + "JingleSession.cpp", + "JingleSessionListener.cpp", + "AbstractJingleSessionListener.cpp", + "JingleSessionImpl.cpp", + "IncomingJingleSessionHandler.cpp", + "JingleSessionManager.cpp", + "JingleResponder.cpp", + "FakeJingleSession.cpp", + ] swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources)) diff --git a/Swiften/LinkLocal/SConscript b/Swiften/LinkLocal/SConscript index 29ea692..697037a 100644 --- a/Swiften/LinkLocal/SConscript +++ b/Swiften/LinkLocal/SConscript @@ -4,39 +4,39 @@ myenv = swiften_env.Clone() myenv.MergeFlags(swiften_env.get("BONJOUR_FLAGS", "")) sources = [ - "DNSSD/DNSSDBrowseQuery.cpp", - "DNSSD/DNSSDQuerier.cpp", - "DNSSD/DNSSDRegisterQuery.cpp", - "DNSSD/DNSSDResolveHostnameQuery.cpp", - "DNSSD/DNSSDResolveServiceQuery.cpp", - "DNSSD/DNSSDServiceID.cpp", - "DNSSD/Fake/FakeDNSSDQuerier.cpp", - "DNSSD/Fake/FakeDNSSDQuery.cpp", - "DNSSD/PlatformDNSSDQuerierFactory.cpp", - "IncomingLinkLocalSession.cpp", - "LinkLocalConnector.cpp", - "LinkLocalService.cpp", - "LinkLocalServiceBrowser.cpp", - "LinkLocalServiceInfo.cpp", - "OutgoingLinkLocalSession.cpp", - ] + "DNSSD/DNSSDBrowseQuery.cpp", + "DNSSD/DNSSDQuerier.cpp", + "DNSSD/DNSSDRegisterQuery.cpp", + "DNSSD/DNSSDResolveHostnameQuery.cpp", + "DNSSD/DNSSDResolveServiceQuery.cpp", + "DNSSD/DNSSDServiceID.cpp", + "DNSSD/Fake/FakeDNSSDQuerier.cpp", + "DNSSD/Fake/FakeDNSSDQuery.cpp", + "DNSSD/PlatformDNSSDQuerierFactory.cpp", + "IncomingLinkLocalSession.cpp", + "LinkLocalConnector.cpp", + "LinkLocalService.cpp", + "LinkLocalServiceBrowser.cpp", + "LinkLocalServiceInfo.cpp", + "OutgoingLinkLocalSession.cpp", + ] if myenv.get("HAVE_BONJOUR", 0) : - myenv.Append(CPPDEFINES = "HAVE_BONJOUR") - sources += [ - "DNSSD/Bonjour/BonjourQuerier.cpp", - "DNSSD/Bonjour/BonjourQuery.cpp", - ] + myenv.Append(CPPDEFINES = "HAVE_BONJOUR") + sources += [ + "DNSSD/Bonjour/BonjourQuerier.cpp", + "DNSSD/Bonjour/BonjourQuery.cpp", + ] elif myenv.get("HAVE_AVAHI", 0) : - myenv.Append(CPPDEFINES = ["HAVE_AVAHI"]) - sources += [ - "DNSSD/Avahi/AvahiQuerier.cpp", - "DNSSD/Avahi/AvahiQuery.cpp", - "DNSSD/Avahi/AvahiResolveHostnameQuery.cpp", - "DNSSD/Avahi/AvahiResolveServiceQuery.cpp", - "DNSSD/Avahi/AvahiRegisterQuery.cpp", - "DNSSD/Avahi/AvahiBrowseQuery.cpp", - ] + myenv.Append(CPPDEFINES = ["HAVE_AVAHI"]) + sources += [ + "DNSSD/Avahi/AvahiQuerier.cpp", + "DNSSD/Avahi/AvahiQuery.cpp", + "DNSSD/Avahi/AvahiResolveHostnameQuery.cpp", + "DNSSD/Avahi/AvahiResolveServiceQuery.cpp", + "DNSSD/Avahi/AvahiRegisterQuery.cpp", + "DNSSD/Avahi/AvahiBrowseQuery.cpp", + ] objects = myenv.SwiftenObject(sources) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Network/SConscript b/Swiften/Network/SConscript index e9da1bc..9c2a134 100644 --- a/Swiften/Network/SConscript +++ b/Swiften/Network/SConscript @@ -3,109 +3,109 @@ Import("swiften_env") myenv = swiften_env.Clone() if myenv.get("unbound", False) : - myenv.MergeFlags(myenv.get("UNBOUND_FLAGS", {})) - myenv.MergeFlags(myenv.get("LDNS_FLAGS", {})) + myenv.MergeFlags(myenv.get("UNBOUND_FLAGS", {})) + myenv.MergeFlags(myenv.get("LDNS_FLAGS", {})) sourceList = [ - "ProxiedConnection.cpp", - "HTTPConnectProxiedConnection.cpp", - "HTTPConnectProxiedConnectionFactory.cpp", - "SOCKS5ProxiedConnection.cpp", - "SOCKS5ProxiedConnectionFactory.cpp", - "BoostConnection.cpp", - "BoostConnectionFactory.cpp", - "BoostConnectionServer.cpp", - "BoostConnectionServerFactory.cpp", - "BoostIOServiceThread.cpp", - "BOSHConnection.cpp", - "BOSHConnectionPool.cpp", - "CachingDomainNameResolver.cpp", - "ConnectionFactory.cpp", - "ConnectionServer.cpp", - "ConnectionServerFactory.cpp", - "DummyConnection.cpp", - "FakeConnection.cpp", - "ChainedConnector.cpp", - "Connector.cpp", - "Connection.cpp", - "TimerFactory.cpp", - "DummyTimerFactory.cpp", - "BoostTimerFactory.cpp", - "DomainNameResolver.cpp", - "DomainNameAddressQuery.cpp", - "DomainNameServiceQuery.cpp", - "StaticDomainNameResolver.cpp", - "HostAddress.cpp", - "HostAddressPort.cpp", - "HostNameOrAddress.cpp", - "NetworkFactories.cpp", - "BoostNetworkFactories.cpp", - "NetworkEnvironment.cpp", - "Timer.cpp", - "TLSConnection.cpp", - "TLSConnectionFactory.cpp", - "BoostTimer.cpp", - "ProxyProvider.cpp", - "NullProxyProvider.cpp", - "NATTraverser.cpp", - "NullNATTraverser.cpp", - "NATTraversalGetPublicIPRequest.cpp", - "NATTraversalForwardPortRequest.cpp", - "NATTraversalRemovePortForwardingRequest.cpp", - "NATTraversalInterface.cpp", - "HTTPTrafficFilter.cpp", - ] + "ProxiedConnection.cpp", + "HTTPConnectProxiedConnection.cpp", + "HTTPConnectProxiedConnectionFactory.cpp", + "SOCKS5ProxiedConnection.cpp", + "SOCKS5ProxiedConnectionFactory.cpp", + "BoostConnection.cpp", + "BoostConnectionFactory.cpp", + "BoostConnectionServer.cpp", + "BoostConnectionServerFactory.cpp", + "BoostIOServiceThread.cpp", + "BOSHConnection.cpp", + "BOSHConnectionPool.cpp", + "CachingDomainNameResolver.cpp", + "ConnectionFactory.cpp", + "ConnectionServer.cpp", + "ConnectionServerFactory.cpp", + "DummyConnection.cpp", + "FakeConnection.cpp", + "ChainedConnector.cpp", + "Connector.cpp", + "Connection.cpp", + "TimerFactory.cpp", + "DummyTimerFactory.cpp", + "BoostTimerFactory.cpp", + "DomainNameResolver.cpp", + "DomainNameAddressQuery.cpp", + "DomainNameServiceQuery.cpp", + "StaticDomainNameResolver.cpp", + "HostAddress.cpp", + "HostAddressPort.cpp", + "HostNameOrAddress.cpp", + "NetworkFactories.cpp", + "BoostNetworkFactories.cpp", + "NetworkEnvironment.cpp", + "Timer.cpp", + "TLSConnection.cpp", + "TLSConnectionFactory.cpp", + "BoostTimer.cpp", + "ProxyProvider.cpp", + "NullProxyProvider.cpp", + "NATTraverser.cpp", + "NullNATTraverser.cpp", + "NATTraversalGetPublicIPRequest.cpp", + "NATTraversalForwardPortRequest.cpp", + "NATTraversalRemovePortForwardingRequest.cpp", + "NATTraversalInterface.cpp", + "HTTPTrafficFilter.cpp", + ] if myenv.get("unbound", False) : - myenv.Append(CPPDEFINES = "USE_UNBOUND") - sourceList.append("UnboundDomainNameResolver.cpp") + myenv.Append(CPPDEFINES = "USE_UNBOUND") + sourceList.append("UnboundDomainNameResolver.cpp") else : - sourceList.append("PlatformDomainNameResolver.cpp") - sourceList.append("PlatformDomainNameServiceQuery.cpp") - sourceList.append("PlatformDomainNameAddressQuery.cpp") + sourceList.append("PlatformDomainNameResolver.cpp") + sourceList.append("PlatformDomainNameServiceQuery.cpp") + sourceList.append("PlatformDomainNameAddressQuery.cpp") if myenv["PLATFORM"] == "darwin" and myenv["target"] != "android": - myenv.Append(FRAMEWORKS = ["CoreServices", "SystemConfiguration"]) - sourceList += [ "MacOSXProxyProvider.cpp" ] - sourceList += [ "UnixNetworkEnvironment.cpp" ] + myenv.Append(FRAMEWORKS = ["CoreServices", "SystemConfiguration"]) + sourceList += [ "MacOSXProxyProvider.cpp" ] + sourceList += [ "UnixNetworkEnvironment.cpp" ] elif myenv["PLATFORM"] == "win32" : - sourceList += [ "WindowsProxyProvider.cpp" ] - sourceList += [ "WindowsNetworkEnvironment.cpp" ] + sourceList += [ "WindowsProxyProvider.cpp" ] + sourceList += [ "WindowsNetworkEnvironment.cpp" ] elif myenv["PLATFORM"] == "sunos" : - sourceList += [ "UnixProxyProvider.cpp" ] - sourceList += [ "SolarisNetworkEnvironment.cpp" ] - sourceList += [ "EnvironmentProxyProvider.cpp" ] + sourceList += [ "UnixProxyProvider.cpp" ] + sourceList += [ "SolarisNetworkEnvironment.cpp" ] + sourceList += [ "EnvironmentProxyProvider.cpp" ] else : - sourceList += [ "UnixNetworkEnvironment.cpp" ] - sourceList += [ "UnixProxyProvider.cpp" ] - sourceList += [ "EnvironmentProxyProvider.cpp" ] - if myenv.get("HAVE_GCONF", 0) : - myenv.Append(CPPDEFINES = "HAVE_GCONF") - myenv.MergeFlags(myenv["GCONF_FLAGS"]) - sourceList += [ "GConfProxyProvider.cpp" ] + sourceList += [ "UnixNetworkEnvironment.cpp" ] + sourceList += [ "UnixProxyProvider.cpp" ] + sourceList += [ "EnvironmentProxyProvider.cpp" ] + if myenv.get("HAVE_GCONF", 0) : + myenv.Append(CPPDEFINES = "HAVE_GCONF") + myenv.MergeFlags(myenv["GCONF_FLAGS"]) + sourceList += [ "GConfProxyProvider.cpp" ] objects = myenv.SwiftenObject(sourceList) if myenv["experimental_ft"] : - # LibNATPMP classes - if myenv.get("HAVE_LIBNATPMP", False) : - natpmp_env = myenv.Clone() - natpmp_env.Append(CPPDEFINES = natpmp_env["LIBNATPMP_FLAGS"].get("INTERNAL_CPPDEFINES", [])) - myenv.Append(CPPDEFINES = ["HAVE_LIBNATPMP"]) - objects += natpmp_env.SwiftenObject([ - "NATPMPInterface.cpp", - ]) + # LibNATPMP classes + if myenv.get("HAVE_LIBNATPMP", False) : + natpmp_env = myenv.Clone() + natpmp_env.Append(CPPDEFINES = natpmp_env["LIBNATPMP_FLAGS"].get("INTERNAL_CPPDEFINES", [])) + myenv.Append(CPPDEFINES = ["HAVE_LIBNATPMP"]) + objects += natpmp_env.SwiftenObject([ + "NATPMPInterface.cpp", + ]) - # LibMINIUPnP classes - if myenv.get("HAVE_LIBMINIUPNPC", False) : - upnp_env = myenv.Clone() - upnp_env.Append(CPPDEFINES = upnp_env["LIBMINIUPNPC_FLAGS"].get("INTERNAL_CPPDEFINES", [])) - myenv.Append(CPPDEFINES = ["HAVE_LIBMINIUPNPC"]) - objects += upnp_env.SwiftenObject([ - "MiniUPnPInterface.cpp", - ]) - objects += myenv.SwiftenObject([ - "PlatformNATTraversalWorker.cpp", - ]) + # LibMINIUPnP classes + if myenv.get("HAVE_LIBMINIUPNPC", False) : + upnp_env = myenv.Clone() + upnp_env.Append(CPPDEFINES = upnp_env["LIBMINIUPNPC_FLAGS"].get("INTERNAL_CPPDEFINES", [])) + myenv.Append(CPPDEFINES = ["HAVE_LIBMINIUPNPC"]) + objects += upnp_env.SwiftenObject([ + "MiniUPnPInterface.cpp", + ]) + objects += myenv.SwiftenObject([ + "PlatformNATTraversalWorker.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Parser/SConscript b/Swiften/Parser/SConscript index 03870e5..840cbda 100644 --- a/Swiften/Parser/SConscript +++ b/Swiften/Parser/SConscript @@ -6,114 +6,114 @@ myenv.MergeFlags(swiften_env.get("LIBXML_FLAGS", "")) myenv.MergeFlags(swiften_env.get("EXPAT_FLAGS", "")) sources = [ - "AttributeMap.cpp", - "AuthRequestParser.cpp", - "AuthChallengeParser.cpp", - "AuthSuccessParser.cpp", - "AuthResponseParser.cpp", - "CompressParser.cpp", - "ElementParser.cpp", - "IQParser.cpp", - "MessageParser.cpp", - "PayloadParser.cpp", - "StanzaAckParser.cpp", - "BOSHBodyExtractor.cpp", - "ComponentHandshakeParser.cpp", - "PayloadParserFactory.cpp", - "PayloadParserFactoryCollection.cpp", - "PayloadParsers/BodyParser.cpp", - "PayloadParsers/SubjectParser.cpp", - "PayloadParsers/ThreadParser.cpp", - "PayloadParsers/CarbonsEnableParser.cpp", - "PayloadParsers/CarbonsDisableParser.cpp", - "PayloadParsers/CarbonsPrivateParser.cpp", - "PayloadParsers/CarbonsReceivedParser.cpp", - "PayloadParsers/CarbonsSentParser.cpp", - "PayloadParsers/ChatStateParser.cpp", - "PayloadParsers/CapsInfoParser.cpp", - "PayloadParsers/DiscoInfoParser.cpp", - "PayloadParsers/DiscoItemsParser.cpp", - "PayloadParsers/ErrorParser.cpp", - "PayloadParsers/FormParser.cpp", - "PayloadParsers/IBBParser.cpp", - "PayloadParsers/JingleParser.cpp", - "PayloadParsers/JingleReasonParser.cpp", - "PayloadParsers/JingleContentPayloadParser.cpp", - "PayloadParsers/JingleIBBTransportMethodPayloadParser.cpp", - "PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp", - "PayloadParsers/JingleFileTransferDescriptionParser.cpp", - "PayloadParsers/JingleFileTransferHashParser.cpp", - "PayloadParsers/JingleFileTransferFileInfoParser.cpp", - "PayloadParsers/StreamInitiationFileInfoParser.cpp", - "PayloadParsers/CommandParser.cpp", - "PayloadParsers/InBandRegistrationPayloadParser.cpp", - "PayloadParsers/SearchPayloadParser.cpp", - "PayloadParsers/FullPayloadParserFactoryCollection.cpp", - "PayloadParsers/PriorityParser.cpp", - "PayloadParsers/PrivateStorageParser.cpp", - "PayloadParsers/RawXMLPayloadParser.cpp", - "PayloadParsers/ResourceBindParser.cpp", - "PayloadParsers/RosterItemExchangeParser.cpp", - "PayloadParsers/RosterParser.cpp", - "PayloadParsers/SecurityLabelParser.cpp", - "PayloadParsers/SecurityLabelsCatalogParser.cpp", - "PayloadParsers/SoftwareVersionParser.cpp", - "PayloadParsers/StorageParser.cpp", - "PayloadParsers/StatusParser.cpp", - "PayloadParsers/StatusShowParser.cpp", - "PayloadParsers/StreamInitiationParser.cpp", - "PayloadParsers/BytestreamsParser.cpp", - "PayloadParsers/VCardParser.cpp", - "PayloadParsers/VCardUpdateParser.cpp", - "PayloadParsers/DelayParser.cpp", - "PayloadParsers/MUCUserPayloadParser.cpp", - "PayloadParsers/MUCAdminPayloadParser.cpp", - "PayloadParsers/MUCOwnerPayloadParser.cpp", - "PayloadParsers/MUCDestroyPayloadParser.cpp", - "PayloadParsers/MUCInvitationPayloadParser.cpp", - "PayloadParsers/MUCItemParser.cpp", - "PayloadParsers/NicknameParser.cpp", - "PayloadParsers/ReplaceParser.cpp", - "PayloadParsers/LastParser.cpp", - "PayloadParsers/IdleParser.cpp", - "PayloadParsers/S5BProxyRequestParser.cpp", - "PayloadParsers/DeliveryReceiptParser.cpp", - "PayloadParsers/DeliveryReceiptRequestParser.cpp", - "PayloadParsers/UserLocationParser.cpp", - "PayloadParsers/UserTuneParser.cpp", - "PayloadParsers/WhiteboardParser.cpp", - "PayloadParsers/PubSubErrorParserFactory.cpp", - "PayloadParsers/ResultSetParser.cpp", - "PayloadParsers/ForwardedParser.cpp", - "PayloadParsers/MAMFinParser.cpp", - "PayloadParsers/MAMResultParser.cpp", - "PayloadParsers/MAMQueryParser.cpp", - "PayloadParsers/IsodeIQDelegationParser.cpp", - "PlatformXMLParserFactory.cpp", - "PresenceParser.cpp", - "SerializingParser.cpp", - "StanzaParser.cpp", - "StreamErrorParser.cpp", - "StreamFeaturesParser.cpp", - "StreamManagementEnabledParser.cpp", - "StreamResumeParser.cpp", - "StreamResumedParser.cpp", - "Tree/ParserElement.cpp", - "Tree/NullParserElement.cpp", - "Tree/TreeReparser.cpp", - "XMLParser.cpp", - "XMLParserClient.cpp", - "XMLParserFactory.cpp", - "XMPPParser.cpp", - "XMPPParserClient.cpp", - ] + "AttributeMap.cpp", + "AuthRequestParser.cpp", + "AuthChallengeParser.cpp", + "AuthSuccessParser.cpp", + "AuthResponseParser.cpp", + "CompressParser.cpp", + "ElementParser.cpp", + "IQParser.cpp", + "MessageParser.cpp", + "PayloadParser.cpp", + "StanzaAckParser.cpp", + "BOSHBodyExtractor.cpp", + "ComponentHandshakeParser.cpp", + "PayloadParserFactory.cpp", + "PayloadParserFactoryCollection.cpp", + "PayloadParsers/BodyParser.cpp", + "PayloadParsers/SubjectParser.cpp", + "PayloadParsers/ThreadParser.cpp", + "PayloadParsers/CarbonsEnableParser.cpp", + "PayloadParsers/CarbonsDisableParser.cpp", + "PayloadParsers/CarbonsPrivateParser.cpp", + "PayloadParsers/CarbonsReceivedParser.cpp", + "PayloadParsers/CarbonsSentParser.cpp", + "PayloadParsers/ChatStateParser.cpp", + "PayloadParsers/CapsInfoParser.cpp", + "PayloadParsers/DiscoInfoParser.cpp", + "PayloadParsers/DiscoItemsParser.cpp", + "PayloadParsers/ErrorParser.cpp", + "PayloadParsers/FormParser.cpp", + "PayloadParsers/IBBParser.cpp", + "PayloadParsers/JingleParser.cpp", + "PayloadParsers/JingleReasonParser.cpp", + "PayloadParsers/JingleContentPayloadParser.cpp", + "PayloadParsers/JingleIBBTransportMethodPayloadParser.cpp", + "PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp", + "PayloadParsers/JingleFileTransferDescriptionParser.cpp", + "PayloadParsers/JingleFileTransferHashParser.cpp", + "PayloadParsers/JingleFileTransferFileInfoParser.cpp", + "PayloadParsers/StreamInitiationFileInfoParser.cpp", + "PayloadParsers/CommandParser.cpp", + "PayloadParsers/InBandRegistrationPayloadParser.cpp", + "PayloadParsers/SearchPayloadParser.cpp", + "PayloadParsers/FullPayloadParserFactoryCollection.cpp", + "PayloadParsers/PriorityParser.cpp", + "PayloadParsers/PrivateStorageParser.cpp", + "PayloadParsers/RawXMLPayloadParser.cpp", + "PayloadParsers/ResourceBindParser.cpp", + "PayloadParsers/RosterItemExchangeParser.cpp", + "PayloadParsers/RosterParser.cpp", + "PayloadParsers/SecurityLabelParser.cpp", + "PayloadParsers/SecurityLabelsCatalogParser.cpp", + "PayloadParsers/SoftwareVersionParser.cpp", + "PayloadParsers/StorageParser.cpp", + "PayloadParsers/StatusParser.cpp", + "PayloadParsers/StatusShowParser.cpp", + "PayloadParsers/StreamInitiationParser.cpp", + "PayloadParsers/BytestreamsParser.cpp", + "PayloadParsers/VCardParser.cpp", + "PayloadParsers/VCardUpdateParser.cpp", + "PayloadParsers/DelayParser.cpp", + "PayloadParsers/MUCUserPayloadParser.cpp", + "PayloadParsers/MUCAdminPayloadParser.cpp", + "PayloadParsers/MUCOwnerPayloadParser.cpp", + "PayloadParsers/MUCDestroyPayloadParser.cpp", + "PayloadParsers/MUCInvitationPayloadParser.cpp", + "PayloadParsers/MUCItemParser.cpp", + "PayloadParsers/NicknameParser.cpp", + "PayloadParsers/ReplaceParser.cpp", + "PayloadParsers/LastParser.cpp", + "PayloadParsers/IdleParser.cpp", + "PayloadParsers/S5BProxyRequestParser.cpp", + "PayloadParsers/DeliveryReceiptParser.cpp", + "PayloadParsers/DeliveryReceiptRequestParser.cpp", + "PayloadParsers/UserLocationParser.cpp", + "PayloadParsers/UserTuneParser.cpp", + "PayloadParsers/WhiteboardParser.cpp", + "PayloadParsers/PubSubErrorParserFactory.cpp", + "PayloadParsers/ResultSetParser.cpp", + "PayloadParsers/ForwardedParser.cpp", + "PayloadParsers/MAMFinParser.cpp", + "PayloadParsers/MAMResultParser.cpp", + "PayloadParsers/MAMQueryParser.cpp", + "PayloadParsers/IsodeIQDelegationParser.cpp", + "PlatformXMLParserFactory.cpp", + "PresenceParser.cpp", + "SerializingParser.cpp", + "StanzaParser.cpp", + "StreamErrorParser.cpp", + "StreamFeaturesParser.cpp", + "StreamManagementEnabledParser.cpp", + "StreamResumeParser.cpp", + "StreamResumedParser.cpp", + "Tree/ParserElement.cpp", + "Tree/NullParserElement.cpp", + "Tree/TreeReparser.cpp", + "XMLParser.cpp", + "XMLParserClient.cpp", + "XMLParserFactory.cpp", + "XMPPParser.cpp", + "XMPPParserClient.cpp", + ] if myenv.get("HAVE_EXPAT", 0) : - myenv.Append(CPPDEFINES = "HAVE_EXPAT") - sources += ["ExpatParser.cpp"] + myenv.Append(CPPDEFINES = "HAVE_EXPAT") + sources += ["ExpatParser.cpp"] if myenv.get("HAVE_LIBXML", 0) : - myenv.Append(CPPDEFINES = "HAVE_LIBXML") - sources += ["LibXMLParser.cpp"] + myenv.Append(CPPDEFINES = "HAVE_LIBXML") + sources += ["LibXMLParser.cpp"] objects = myenv.SwiftenObject(sources) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/Presence/SConscript b/Swiften/Presence/SConscript index 33acbd3..c3e32f2 100644 --- a/Swiften/Presence/SConscript +++ b/Swiften/Presence/SConscript @@ -1,11 +1,11 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "PresenceOracle.cpp", - "PresenceSender.cpp", - "DirectedPresenceSender.cpp", - "PayloadAddingPresenceSender.cpp", - "StanzaChannelPresenceSender.cpp", - "SubscriptionManager.cpp", - ]) + "PresenceOracle.cpp", + "PresenceSender.cpp", + "DirectedPresenceSender.cpp", + "PayloadAddingPresenceSender.cpp", + "StanzaChannelPresenceSender.cpp", + "SubscriptionManager.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/QA/ClientTest/SConscript b/Swiften/QA/ClientTest/SConscript index 15a68c6..812c472 100644 --- a/Swiften/QA/ClientTest/SConscript +++ b/Swiften/QA/ClientTest/SConscript @@ -3,15 +3,15 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) - myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv = env.Clone() + myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) + myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) - for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]: - if ARGUMENTS.get(i.lower(), False) : - myenv["ENV"][i] = ARGUMENTS[i.lower()] - elif os.environ.get(i, "") : - myenv["ENV"][i] = os.environ[i] + for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]: + if ARGUMENTS.get(i.lower(), False) : + myenv["ENV"][i] = ARGUMENTS[i.lower()] + elif os.environ.get(i, "") : + myenv["ENV"][i] = os.environ[i] - tester = myenv.Program("ClientTest", ["ClientTest.cpp"]) - myenv.Test(tester, "system") + tester = myenv.Program("ClientTest", ["ClientTest.cpp"]) + myenv.Test(tester, "system") diff --git a/Swiften/QA/ConcurrentFileTransferTest/SConscript b/Swiften/QA/ConcurrentFileTransferTest/SConscript index 1b4cdbc..94b37fd 100644 --- a/Swiften/QA/ConcurrentFileTransferTest/SConscript +++ b/Swiften/QA/ConcurrentFileTransferTest/SConscript @@ -3,15 +3,15 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) - myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv = env.Clone() + myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) + myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) - for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]: - if ARGUMENTS.get(i.lower(), False) : - myenv["ENV"][i] = ARGUMENTS[i.lower()] - elif os.environ.get(i, "") : - myenv["ENV"][i] = os.environ[i] + for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]: + if ARGUMENTS.get(i.lower(), False) : + myenv["ENV"][i] = ARGUMENTS[i.lower()] + elif os.environ.get(i, "") : + myenv["ENV"][i] = os.environ[i] - tester = myenv.Program("ConcurrentFileTransferTest", ["ConcurrentFileTransferTest.cpp"]) - myenv.Test(tester, "system") + tester = myenv.Program("ConcurrentFileTransferTest", ["ConcurrentFileTransferTest.cpp"]) + myenv.Test(tester, "system") diff --git a/Swiften/QA/DNSSDTest/SConscript b/Swiften/QA/DNSSDTest/SConscript index d35d06f..275a314 100644 --- a/Swiften/QA/DNSSDTest/SConscript +++ b/Swiften/QA/DNSSDTest/SConscript @@ -3,19 +3,19 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["CHECKER_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) - myenv.MergeFlags(myenv["BOOST_FLAGS"]) - myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) - if myenv.get("HAVE_BONJOUR", 0) : - myenv.Append(CPPDEFINES = "HAVE_BONJOUR") - elif myenv.get("HAVE_AVAHI", 0) : - myenv.Append(CPPDEFINES = ["HAVE_AVAHI"]) - myenv.MergeFlags(myenv["AVAHI_FLAGS"]) + myenv = env.Clone() + myenv.MergeFlags(myenv["CHECKER_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) + myenv.MergeFlags(myenv["BOOST_FLAGS"]) + myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) + if myenv.get("HAVE_BONJOUR", 0) : + myenv.Append(CPPDEFINES = "HAVE_BONJOUR") + elif myenv.get("HAVE_AVAHI", 0) : + myenv.Append(CPPDEFINES = ["HAVE_AVAHI"]) + myenv.MergeFlags(myenv["AVAHI_FLAGS"]) - tester = myenv.Program("DNSSDTest", [ - "DNSSDTest.cpp", - ]) - myenv.Test(tester, "system") + tester = myenv.Program("DNSSDTest", [ + "DNSSDTest.cpp", + ]) + myenv.Test(tester, "system") diff --git a/Swiften/QA/FileTransferTest/SConscript b/Swiften/QA/FileTransferTest/SConscript index 3275985..4b77674 100644 --- a/Swiften/QA/FileTransferTest/SConscript +++ b/Swiften/QA/FileTransferTest/SConscript @@ -3,18 +3,18 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) - myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv = env.Clone() + myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) + myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) - for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]: - if ARGUMENTS.get(i.lower(), False) : - myenv["ENV"][i] = ARGUMENTS[i.lower()] - elif os.environ.get(i, "") : - myenv["ENV"][i] = os.environ[i] + for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]: + if ARGUMENTS.get(i.lower(), False) : + myenv["ENV"][i] = ARGUMENTS[i.lower()] + elif os.environ.get(i, "") : + myenv["ENV"][i] = os.environ[i] - # test in-band transfers, direct SOCKS5 bytestream transfers and proxied SOCKS5 bytestream transfers - myenv["ENV"]["SWIFT_FILETRANSFERTEST_CONFIG"] = "1:1|2:2|4:4" + # test in-band transfers, direct SOCKS5 bytestream transfers and proxied SOCKS5 bytestream transfers + myenv["ENV"]["SWIFT_FILETRANSFERTEST_CONFIG"] = "1:1|2:2|4:4" - tester = myenv.Program("FileTransferTest", ["FileTransferTest.cpp"]) - myenv.Test(tester, "system") + tester = myenv.Program("FileTransferTest", ["FileTransferTest.cpp"]) + myenv.Test(tester, "system") diff --git a/Swiften/QA/NetworkTest/SConscript b/Swiften/QA/NetworkTest/SConscript index b090165..387bafc 100644 --- a/Swiften/QA/NetworkTest/SConscript +++ b/Swiften/QA/NetworkTest/SConscript @@ -3,20 +3,20 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - if "test_ipv6" in ARGUMENTS : - myenv.Append(CPPDEFINES = ["TEST_IPV6"]) - myenv.MergeFlags(myenv["CHECKER_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) - myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) + myenv = env.Clone() + if "test_ipv6" in ARGUMENTS : + myenv.Append(CPPDEFINES = ["TEST_IPV6"]) + myenv.MergeFlags(myenv["CHECKER_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) - if env.get("unbound", False) : - myenv.Append(CPPDEFINES = ["USE_UNBOUND"]) + if env.get("unbound", False) : + myenv.Append(CPPDEFINES = ["USE_UNBOUND"]) - tester = myenv.Program("NetworkTest", [ - "BoostConnectionServerTest.cpp", - "BoostConnectionTest.cpp", - "DomainNameResolverTest.cpp", - ]) - myenv.Test(tester, "system", is_checker = True) + tester = myenv.Program("NetworkTest", [ + "BoostConnectionServerTest.cpp", + "BoostConnectionTest.cpp", + "DomainNameResolverTest.cpp", + ]) + myenv.Test(tester, "system", is_checker = True) diff --git a/Swiften/QA/ProxyProviderTest/SConscript b/Swiften/QA/ProxyProviderTest/SConscript index 2eb123d..3e28360 100644 --- a/Swiften/QA/ProxyProviderTest/SConscript +++ b/Swiften/QA/ProxyProviderTest/SConscript @@ -7,5 +7,5 @@ myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) myenv.Program("ProxyProviderTest", [ - "ProxyProviderTest.cpp", - ]) + "ProxyProviderTest.cpp", + ]) diff --git a/Swiften/QA/ReconnectTest/SConscript b/Swiften/QA/ReconnectTest/SConscript index 6db6a6f..a94af5e 100644 --- a/Swiften/QA/ReconnectTest/SConscript +++ b/Swiften/QA/ReconnectTest/SConscript @@ -3,23 +3,23 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) - myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) - myenv.MergeFlags(myenv["BOOST_FLAGS"]) - myenv.MergeFlags(myenv.get("SQLITE_FLAGS", "")) - myenv.MergeFlags(myenv["ZLIB_FLAGS"]) - myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) - myenv.MergeFlags(myenv.get("LIBXML_FLAGS", "")) - myenv.MergeFlags(myenv.get("EXPAT_FLAGS", "")) - myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) -# myenv.Append(LIBPATH = ["/opt/local/lib"]) -# myenv.Append(LIBS = ["efence"]) + myenv = env.Clone() + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) + myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) + myenv.MergeFlags(myenv["BOOST_FLAGS"]) + myenv.MergeFlags(myenv.get("SQLITE_FLAGS", "")) + myenv.MergeFlags(myenv["ZLIB_FLAGS"]) + myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) + myenv.MergeFlags(myenv.get("LIBXML_FLAGS", "")) + myenv.MergeFlags(myenv.get("EXPAT_FLAGS", "")) + myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) +# myenv.Append(LIBPATH = ["/opt/local/lib"]) +# myenv.Append(LIBS = ["efence"]) - for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]: - if os.environ.get(i, "") : - myenv["ENV"][i] = os.environ[i] + for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]: + if os.environ.get(i, "") : + myenv["ENV"][i] = os.environ[i] - tester = myenv.Program("ReconnectTest", ["ReconnectTest.cpp"]) - myenv.Test(tester, "system", is_checker = True) + tester = myenv.Program("ReconnectTest", ["ReconnectTest.cpp"]) + myenv.Test(tester, "system", is_checker = True) diff --git a/Swiften/QA/SConscript b/Swiften/QA/SConscript index 2c588e5..2bb3e51 100644 --- a/Swiften/QA/SConscript +++ b/Swiften/QA/SConscript @@ -1,13 +1,13 @@ Import("swiften_env") SConscript(dirs = [ - "NetworkTest", -# "ReconnectTest", - "ClientTest", -# "DNSSDTest", - "StorageTest", - "TLSTest", - "ScriptedTests", - "ProxyProviderTest", - "FileTransferTest", - ]) + "NetworkTest", +# "ReconnectTest", + "ClientTest", +# "DNSSDTest", + "StorageTest", + "TLSTest", + "ScriptedTests", + "ProxyProviderTest", + "FileTransferTest", + ]) diff --git a/Swiften/QA/ScriptedTests/SConscript b/Swiften/QA/ScriptedTests/SConscript index 298c455..ae315fe 100644 --- a/Swiften/QA/ScriptedTests/SConscript +++ b/Swiften/QA/ScriptedTests/SConscript @@ -1,7 +1,7 @@ Import("env") if env["TEST"] : - env.ScriptTests([ - "SendMessage.lua", - "MultipleClients.lua", - ], "Swiften.QA.ScriptedTests", "system") + env.ScriptTests([ + "SendMessage.lua", + "MultipleClients.lua", + ], "Swiften.QA.ScriptedTests", "system") diff --git a/Swiften/QA/StorageTest/SConscript b/Swiften/QA/StorageTest/SConscript index fff2a2b..bb1a2c6 100644 --- a/Swiften/QA/StorageTest/SConscript +++ b/Swiften/QA/StorageTest/SConscript @@ -3,20 +3,20 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["CHECKER_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) - myenv.MergeFlags(myenv["BOOST_FLAGS"]) - myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) - myenv.MergeFlags(myenv.get("EXPAT_FLAGS", {})) - myenv.MergeFlags(myenv.get("LIBXML_FLAGS", {})) - myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) + myenv = env.Clone() + myenv.MergeFlags(myenv["CHECKER_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) + myenv.MergeFlags(myenv["BOOST_FLAGS"]) + myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) + myenv.MergeFlags(myenv.get("EXPAT_FLAGS", {})) + myenv.MergeFlags(myenv.get("LIBXML_FLAGS", {})) + myenv.MergeFlags(myenv["PLATFORM_FLAGS"]) - tester = myenv.Program("StorageTest", [ - #"VCardFileStorageTest.cpp", - "FileReadBytestreamTest.cpp", - "FileWriteBytestreamTest.cpp", - ]) - myenv.Test(tester, "system", is_checker = True) + tester = myenv.Program("StorageTest", [ + #"VCardFileStorageTest.cpp", + "FileReadBytestreamTest.cpp", + "FileWriteBytestreamTest.cpp", + ]) + myenv.Test(tester, "system", is_checker = True) diff --git a/Swiften/QA/TLSTest/SConscript b/Swiften/QA/TLSTest/SConscript index 1a2e2c0..ba884e4 100644 --- a/Swiften/QA/TLSTest/SConscript +++ b/Swiften/QA/TLSTest/SConscript @@ -3,23 +3,23 @@ import os Import("env") if env["TEST"] : - myenv = env.Clone() - myenv.MergeFlags(myenv["CHECKER_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) - myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) - myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) - - if myenv.get("HAVE_OPENSSL", 0) : - myenv.Append(CPPDEFINES = "HAVE_OPENSSL") - myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) - elif myenv.get("HAVE_SCHANNEL", 0) : - myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") - elif myenv.get("HAVE_SECURETRANSPORT", 0) : - myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT") - - tester = myenv.Program("TLSTest", [ - "CertificateTest.cpp", - "CertificateErrorTest.cpp" - ]) - myenv.Test(tester, "system")
\ No newline at end of file + myenv = env.Clone() + myenv.MergeFlags(myenv["CHECKER_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_FLAGS"]) + myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"]) + myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) + + if myenv.get("HAVE_OPENSSL", 0) : + myenv.Append(CPPDEFINES = "HAVE_OPENSSL") + myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) + elif myenv.get("HAVE_SCHANNEL", 0) : + myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") + elif myenv.get("HAVE_SECURETRANSPORT", 0) : + myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT") + + tester = myenv.Program("TLSTest", [ + "CertificateTest.cpp", + "CertificateErrorTest.cpp" + ]) + myenv.Test(tester, "system")
\ No newline at end of file diff --git a/Swiften/SASL/SConscript b/Swiften/SASL/SConscript index 7e1fd07..6aa3e72 100644 --- a/Swiften/SASL/SConscript +++ b/Swiften/SASL/SConscript @@ -3,31 +3,31 @@ Import("swiften_env", "env") myenv = swiften_env.Clone() objects = myenv.SwiftenObject([ - "ClientAuthenticator.cpp", - "EXTERNALClientAuthenticator.cpp", - "PLAINClientAuthenticator.cpp", - "PLAINMessage.cpp", - "SCRAMSHA1ClientAuthenticator.cpp", - "DIGESTMD5Properties.cpp", - "DIGESTMD5ClientAuthenticator.cpp", - ]) + "ClientAuthenticator.cpp", + "EXTERNALClientAuthenticator.cpp", + "PLAINClientAuthenticator.cpp", + "PLAINMessage.cpp", + "SCRAMSHA1ClientAuthenticator.cpp", + "DIGESTMD5Properties.cpp", + "DIGESTMD5ClientAuthenticator.cpp", + ]) if myenv["PLATFORM"] == "win32" : - objects += myenv.SwiftenObject([ - "WindowsServicePrincipalName.cpp", - "WindowsAuthentication.cpp", - "WindowsGSSAPIClientAuthenticator.cpp" - ]) + objects += myenv.SwiftenObject([ + "WindowsServicePrincipalName.cpp", + "WindowsAuthentication.cpp", + "WindowsGSSAPIClientAuthenticator.cpp" + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) env.Append(UNITTEST_SOURCES = [ - File("UnitTest/PLAINMessageTest.cpp"), - File("UnitTest/PLAINClientAuthenticatorTest.cpp"), - File("UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp"), - File("UnitTest/DIGESTMD5PropertiesTest.cpp"), - File("UnitTest/DIGESTMD5ClientAuthenticatorTest.cpp"), - ]) + File("UnitTest/PLAINMessageTest.cpp"), + File("UnitTest/PLAINClientAuthenticatorTest.cpp"), + File("UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp"), + File("UnitTest/DIGESTMD5PropertiesTest.cpp"), + File("UnitTest/DIGESTMD5ClientAuthenticatorTest.cpp"), + ]) if myenv["PLATFORM"] == "win32" : - env.Append(UNITTEST_SOURCES = [ - File("UnitTest/WindowsServicePrincipalNameTest.cpp"), - ]) + env.Append(UNITTEST_SOURCES = [ + File("UnitTest/WindowsServicePrincipalNameTest.cpp"), + ]) diff --git a/Swiften/SConscript b/Swiften/SConscript index 54ce18b..5270ac5 100644 --- a/Swiften/SConscript +++ b/Swiften/SConscript @@ -10,592 +10,592 @@ swiften_dep_modules = ["BOOST", "GCONF", "ICU", "LIBIDN", "ZLIB", "LDNS", "UNBOU external_swiften_dep_modules = ["BOOST"] if env["SCONS_STAGE"] == "flags" : - env["SWIFTEN_DLL"] = env["swiften_dll"] - env["SWIFTEN_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift") - version_match = re.match("(\d+)\.(\d+).*", env["SWIFTEN_VERSION"]) - if version_match : - env["SWIFTEN_VERSION_MAJOR"] = int(version_match.group(1)) - env["SWIFTEN_VERSION_MINOR"] = int(version_match.group(2)) - else : - env["SWIFTEN_VERSION_MAJOR"] = 0 - env["SWIFTEN_VERSION_MINOR"] = 0 - env["SWIFTEN_VERSION_PATCH"] = 0 - env["SWIFTEN_LIBRARY"] = "Swiften" - env["SWIFTEN_LIBRARY_FILE"] = "Swiften" - env["SWIFTEN_LIBRARY_ALIASES"] = [] - - if env["SWIFTEN_DLL"] : - if env["PLATFORM"] == "win32" : - env["SWIFTEN_LIBRARY"] = env.subst("Swiften${SWIFTEN_VERSION_MAJOR}") - env["SWIFTEN_LIBRARY_FILE"] = env.subst("${SWIFTEN_LIBRARY}.dll") - elif env["PLATFORM"] == "darwin" : - env["SWIFTEN_LIBRARY_FILE"] = env.subst("Swiften.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}") - env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.dylib", env.subst("libSwiften.${SWIFTEN_VERSION_MAJOR}.dylib")] - else : - env["SWIFTEN_LIBRARY_FILE"] = env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}") - env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.so", env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}")] + env["SWIFTEN_DLL"] = env["swiften_dll"] + env["SWIFTEN_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift") + version_match = re.match("(\d+)\.(\d+).*", env["SWIFTEN_VERSION"]) + if version_match : + env["SWIFTEN_VERSION_MAJOR"] = int(version_match.group(1)) + env["SWIFTEN_VERSION_MINOR"] = int(version_match.group(2)) + else : + env["SWIFTEN_VERSION_MAJOR"] = 0 + env["SWIFTEN_VERSION_MINOR"] = 0 + env["SWIFTEN_VERSION_PATCH"] = 0 + env["SWIFTEN_LIBRARY"] = "Swiften" + env["SWIFTEN_LIBRARY_FILE"] = "Swiften" + env["SWIFTEN_LIBRARY_ALIASES"] = [] + + if env["SWIFTEN_DLL"] : + if env["PLATFORM"] == "win32" : + env["SWIFTEN_LIBRARY"] = env.subst("Swiften${SWIFTEN_VERSION_MAJOR}") + env["SWIFTEN_LIBRARY_FILE"] = env.subst("${SWIFTEN_LIBRARY}.dll") + elif env["PLATFORM"] == "darwin" : + env["SWIFTEN_LIBRARY_FILE"] = env.subst("Swiften.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}") + env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.dylib", env.subst("libSwiften.${SWIFTEN_VERSION_MAJOR}.dylib")] + else : + env["SWIFTEN_LIBRARY_FILE"] = env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}") + env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.so", env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}")] - if env["SWIFTEN_DLL"] : - env.AddMethod(lambda e,s : e.SharedObject(s), "SwiftenObject") - else : - env.AddMethod(lambda e,s : e.StaticObject(s), "SwiftenObject") + if env["SWIFTEN_DLL"] : + env.AddMethod(lambda e,s : e.SharedObject(s), "SwiftenObject") + else : + env.AddMethod(lambda e,s : e.StaticObject(s), "SwiftenObject") - swiften_env = env.Clone() - swiften_env["LIBPATH"] = [Dir(".")] - swiften_env["LIBRUNPATH"] = [Dir(".")] - swiften_env["LIBS"] = [swiften_env["SWIFTEN_LIBRARY"]] - if not env["SWIFTEN_DLL"] : - swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"]) - dep_env = env.Clone() - for module in swiften_dep_modules : - module_flags = env.get(module + "_FLAGS", {}) - if env.get(module + "_BUNDLED", False) : - if module in external_swiften_dep_modules : - swiften_env.UseFlags(module_flags) - else : - if module in external_swiften_dep_modules : - dep_env.UseFlags(module_flags) - else : - # Expose only libraries - dep_env.Append(LIBPATH = module_flags.get("LIBPATH", [])) - dep_env.Append(LIBS = module_flags.get("LIBS", [])) - dep_env.Append(FRAMEWORKS = module_flags.get("FRAMEWORKS", [])) - dep_env.UseFlags(dep_env["PLATFORM_FLAGS"]) + swiften_env = env.Clone() + swiften_env["LIBPATH"] = [Dir(".")] + swiften_env["LIBRUNPATH"] = [Dir(".")] + swiften_env["LIBS"] = [swiften_env["SWIFTEN_LIBRARY"]] + if not env["SWIFTEN_DLL"] : + swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"]) + dep_env = env.Clone() + for module in swiften_dep_modules : + module_flags = env.get(module + "_FLAGS", {}) + if env.get(module + "_BUNDLED", False) : + if module in external_swiften_dep_modules : + swiften_env.UseFlags(module_flags) + else : + if module in external_swiften_dep_modules : + dep_env.UseFlags(module_flags) + else : + # Expose only libraries + dep_env.Append(LIBPATH = module_flags.get("LIBPATH", [])) + dep_env.Append(LIBS = module_flags.get("LIBS", [])) + dep_env.Append(FRAMEWORKS = module_flags.get("FRAMEWORKS", [])) + dep_env.UseFlags(dep_env["PLATFORM_FLAGS"]) - if env.get("HAVE_SCHANNEL", 0) : - dep_env.Append(LIBS = ["Winscard"]) + if env.get("HAVE_SCHANNEL", 0) : + dep_env.Append(LIBS = ["Winscard"]) - for var, e in [("SWIFTEN_FLAGS", swiften_env), ("SWIFTEN_DEP_FLAGS", dep_env)] : - env[var] = { - "CPPDEFINES": e.get("CPPDEFINES", []), - "CPPPATH": e.get("CPPPATH", []), - "CPPFLAGS": e.get("CPPFLAGS", []), - "LIBPATH": e.get("LIBPATH", []), - "LIBRUNPATH": e.get("LIBRUNPATH", []), - "LIBS": e.get("LIBS", []), - "FRAMEWORKS": e.get("FRAMEWORKS", []), - } + for var, e in [("SWIFTEN_FLAGS", swiften_env), ("SWIFTEN_DEP_FLAGS", dep_env)] : + env[var] = { + "CPPDEFINES": e.get("CPPDEFINES", []), + "CPPPATH": e.get("CPPPATH", []), + "CPPFLAGS": e.get("CPPFLAGS", []), + "LIBPATH": e.get("LIBPATH", []), + "LIBRUNPATH": e.get("LIBRUNPATH", []), + "LIBS": e.get("LIBS", []), + "FRAMEWORKS": e.get("FRAMEWORKS", []), + } - if env["PLATFORM"] == "win32" : - # 0x0600 = _WIN32_WINNT_VISTA, 0x06000000 = NTDDI_VISTA - env.Append(CPPDEFINES = [("_WIN32_WINNT","0x0600") , ("NTDDI_VERSION","0x06000000")]) + if env["PLATFORM"] == "win32" : + # 0x0600 = _WIN32_WINNT_VISTA, 0x06000000 = NTDDI_VISTA + env.Append(CPPDEFINES = [("_WIN32_WINNT","0x0600") , ("NTDDI_VERSION","0x06000000")]) ################################################################################ # Build ################################################################################ if env["SCONS_STAGE"] == "build" : - swiften_env = env.Clone() - swiften_env.Append(CPPDEFINES = ["SWIFTEN_BUILDING"]) - for module in swiften_dep_modules : - swiften_env.UseFlags(swiften_env.get(module + "_FLAGS", {})) - if env.get(module + "_BUNDLED", False) : - swiften_env.Append(SWIFTEN_OBJECTS = env.get(module + "_OBJECTS", [])) - swiften_env.UseFlags(swiften_env["PLATFORM_FLAGS"]) - - if swiften_env["SWIFTEN_DLL"] : - swiften_env.AddMethod(lambda e,l,o : e.SharedLibrary(l,o), "SwiftenLibrary") - else : - swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"]) - swiften_env.AddMethod(lambda e,l,o : e.StaticLibrary(l,o), "SwiftenLibrary") - Export("swiften_env") + swiften_env = env.Clone() + swiften_env.Append(CPPDEFINES = ["SWIFTEN_BUILDING"]) + for module in swiften_dep_modules : + swiften_env.UseFlags(swiften_env.get(module + "_FLAGS", {})) + if env.get(module + "_BUNDLED", False) : + swiften_env.Append(SWIFTEN_OBJECTS = env.get(module + "_OBJECTS", [])) + swiften_env.UseFlags(swiften_env["PLATFORM_FLAGS"]) + + if swiften_env["SWIFTEN_DLL"] : + swiften_env.AddMethod(lambda e,l,o : e.SharedLibrary(l,o), "SwiftenLibrary") + else : + swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"]) + swiften_env.AddMethod(lambda e,l,o : e.StaticLibrary(l,o), "SwiftenLibrary") + Export("swiften_env") # TODO: Move all this to a submodule SConscript - sources = [ - "Base/Debug.cpp", - "Chat/ChatStateTracker.cpp", - "Chat/ChatStateNotifier.cpp", - "Client/ClientSessionStanzaChannel.cpp", - "Client/CoreClient.cpp", - "Client/Client.cpp", - "Client/ClientXMLTracer.cpp", - "Client/ClientSession.cpp", - "Client/BlockList.cpp", - "Client/BlockListImpl.cpp", - "Client/ClientBlockListManager.cpp", - "Client/MemoryStorages.cpp", - "Client/NickResolver.cpp", - "Client/NickManager.cpp", - "Client/NickManagerImpl.cpp", - "Client/Storages.cpp", - "Client/XMLBeautifier.cpp", - "Compress/ZLibCodecompressor.cpp", - "Compress/ZLibDecompressor.cpp", - "Compress/ZLibCompressor.cpp", - "Elements/CarbonsEnable.cpp", - "Elements/CarbonsDisable.cpp", - "Elements/CarbonsPrivate.cpp", - "Elements/CarbonsReceived.cpp", - "Elements/CarbonsSent.cpp", - "Elements/DiscoInfo.cpp", - "Elements/Presence.cpp", - "Elements/Form.cpp", - "Elements/FormField.cpp", - "Elements/FormPage.cpp", - "Elements/FormSection.cpp", - "Elements/FormText.cpp", - "Elements/StreamFeatures.cpp", - "Elements/Element.cpp", - "Elements/ToplevelElement.cpp", - "Elements/IQ.cpp", - "Elements/Payload.cpp", - "Elements/PubSubPayload.cpp", - "Elements/PubSubOwnerPayload.cpp", - "Elements/PubSubEventPayload.cpp", - "Elements/RosterItemExchangePayload.cpp", - "Elements/RosterPayload.cpp", - "Elements/SecurityLabel.cpp", - "Elements/Stanza.cpp", - "Elements/StanzaAck.cpp", - "Elements/StatusShow.cpp", - "Elements/StreamManagementEnabled.cpp", - "Elements/StreamResume.cpp", - "Elements/StreamResumed.cpp", - "Elements/UserLocation.cpp", - "Elements/UserTune.cpp", - "Elements/VCard.cpp", - "Elements/MUCOccupant.cpp", - "Elements/ResultSet.cpp", - "Elements/Forwarded.cpp", - "Elements/MAMResult.cpp", - "Elements/MAMQuery.cpp", - "Elements/MAMFin.cpp", - "Elements/Thread.cpp", - "Elements/IsodeIQDelegation.cpp", - "Entity/Entity.cpp", - "Entity/PayloadPersister.cpp", - "MUC/MUC.cpp", - "MUC/MUCImpl.cpp", - "MUC/MUCManager.cpp", - "MUC/MUCRegistry.cpp", - "MUC/MUCBookmarkManager.cpp", - "PubSub/PubSubManager.cpp", - "PubSub/PubSubManagerImpl.cpp", - "Queries/IQChannel.cpp", - "Queries/IQHandler.cpp", - "Queries/IQRouter.cpp", - "Queries/Request.cpp", - "Queries/Responders/SoftwareVersionResponder.cpp", - "Roster/RosterStorage.cpp", - "Roster/RosterMemoryStorage.cpp", - "Roster/XMPPRoster.cpp", - "Roster/XMPPRosterImpl.cpp", - "Roster/XMPPRosterController.cpp", - "Serializer/AuthRequestSerializer.cpp", - "Serializer/AuthSuccessSerializer.cpp", - "Serializer/AuthChallengeSerializer.cpp", - "Serializer/AuthResponseSerializer.cpp", - "Serializer/CompressRequestSerializer.cpp", - "Serializer/ElementSerializer.cpp", - "Serializer/MessageSerializer.cpp", - "Serializer/StreamManagementEnabledSerializer.cpp", - "Serializer/StreamResumeSerializer.cpp", - "Serializer/StreamResumedSerializer.cpp", - "Serializer/ComponentHandshakeSerializer.cpp", - "Serializer/PayloadSerializer.cpp", - "Serializer/PayloadSerializerCollection.cpp", - "Serializer/PayloadSerializers/IBBSerializer.cpp", - "Serializer/PayloadSerializers/CapsInfoSerializer.cpp", - "Serializer/PayloadSerializers/CarbonsDisableSerializer.cpp", - "Serializer/PayloadSerializers/CarbonsEnableSerializer.cpp", - "Serializer/PayloadSerializers/CarbonsPrivateSerializer.cpp", - "Serializer/PayloadSerializers/CarbonsSentSerializer.cpp", - "Serializer/PayloadSerializers/CarbonsReceivedSerializer.cpp", - "Serializer/PayloadSerializers/ChatStateSerializer.cpp", - "Serializer/PayloadSerializers/DiscoInfoSerializer.cpp", - "Serializer/PayloadSerializers/DiscoItemsSerializer.cpp", - "Serializer/PayloadSerializers/ErrorSerializer.cpp", - "Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp", - "Serializer/PayloadSerializers/MUCPayloadSerializer.cpp", - "Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp", - "Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp", - "Serializer/PayloadSerializers/MUCOwnerPayloadSerializer.cpp", - "Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp", - "Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp", - "Serializer/PayloadSerializers/ResourceBindSerializer.cpp", - "Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp", - "Serializer/PayloadSerializers/RosterSerializer.cpp", - "Serializer/PayloadSerializers/SecurityLabelSerializer.cpp", - "Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp", - "Serializer/PayloadSerializers/SoftwareVersionSerializer.cpp", - "Serializer/PayloadSerializers/StreamInitiationSerializer.cpp", - "Serializer/PayloadSerializers/BytestreamsSerializer.cpp", - "Serializer/PayloadSerializers/VCardSerializer.cpp", - "Serializer/PayloadSerializers/VCardUpdateSerializer.cpp", - "Serializer/PayloadSerializers/StorageSerializer.cpp", - "Serializer/PayloadSerializers/PrivateStorageSerializer.cpp", - "Serializer/PayloadSerializers/DelaySerializer.cpp", - "Serializer/PayloadSerializers/CommandSerializer.cpp", - "Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp", - "Serializer/PayloadSerializers/SearchPayloadSerializer.cpp", - "Serializer/PayloadSerializers/FormSerializer.cpp", - "Serializer/PayloadSerializers/NicknameSerializer.cpp", - "Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp", - "Serializer/PayloadSerializers/JinglePayloadSerializer.cpp", - "Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp", - "Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp", - "Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp", - "Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp", - "Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp", - "Serializer/PayloadSerializers/DeliveryReceiptSerializer.cpp", - "Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.cpp", - "Serializer/PayloadSerializers/UserLocationSerializer.cpp", - "Serializer/PayloadSerializers/UserTuneSerializer.cpp", - "Serializer/PayloadSerializers/WhiteboardSerializer.cpp", - "Serializer/PayloadSerializers/ResultSetSerializer.cpp", - "Serializer/PayloadSerializers/ForwardedSerializer.cpp", - "Serializer/PayloadSerializers/MAMFinSerializer.cpp", - "Serializer/PayloadSerializers/MAMResultSerializer.cpp", - "Serializer/PayloadSerializers/MAMQuerySerializer.cpp", - "Serializer/PayloadSerializers/IsodeIQDelegationSerializer.cpp", - "Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp", - "Serializer/PayloadSerializers/ThreadSerializer.cpp", - "Serializer/PresenceSerializer.cpp", - "Serializer/StanzaSerializer.cpp", - "Serializer/StreamErrorSerializer.cpp", - "Serializer/StreamFeaturesSerializer.cpp", - "Serializer/XML/XMLElement.cpp", - "Serializer/XML/XMLNode.cpp", - "Serializer/XMPPSerializer.cpp", - "Session/Session.cpp", - "Session/SessionTracer.cpp", - "Session/SessionStream.cpp", - "Session/BasicSessionStream.cpp", - "Session/BOSHSessionStream.cpp", - "StringCodecs/Base64.cpp", - "StringCodecs/Hexify.cpp", - "Whiteboard/WhiteboardResponder.cpp", - "Whiteboard/WhiteboardSession.cpp", - "Whiteboard/IncomingWhiteboardSession.cpp", - "Whiteboard/OutgoingWhiteboardSession.cpp", - "Whiteboard/WhiteboardSessionManager.cpp", - "Whiteboard/WhiteboardServer.cpp", - "Whiteboard/WhiteboardClient.cpp", - "Elements/Whiteboard/WhiteboardColor.cpp", - "Whiteboard/WhiteboardTransformer.cpp", - ] - - elements = [ - "PubSub", "PubSubAffiliations", "PubSubAffiliation", "PubSubConfigure", "PubSubCreate", "PubSubDefault", - "PubSubItems", "PubSubItem", "PubSubOptions", "PubSubPublish", "PubSubRetract", "PubSubSubscribeOptions", - "PubSubSubscribe", "PubSubSubscriptions", "PubSubSubscription", "PubSubUnsubscribe", + sources = [ + "Base/Debug.cpp", + "Chat/ChatStateTracker.cpp", + "Chat/ChatStateNotifier.cpp", + "Client/ClientSessionStanzaChannel.cpp", + "Client/CoreClient.cpp", + "Client/Client.cpp", + "Client/ClientXMLTracer.cpp", + "Client/ClientSession.cpp", + "Client/BlockList.cpp", + "Client/BlockListImpl.cpp", + "Client/ClientBlockListManager.cpp", + "Client/MemoryStorages.cpp", + "Client/NickResolver.cpp", + "Client/NickManager.cpp", + "Client/NickManagerImpl.cpp", + "Client/Storages.cpp", + "Client/XMLBeautifier.cpp", + "Compress/ZLibCodecompressor.cpp", + "Compress/ZLibDecompressor.cpp", + "Compress/ZLibCompressor.cpp", + "Elements/CarbonsEnable.cpp", + "Elements/CarbonsDisable.cpp", + "Elements/CarbonsPrivate.cpp", + "Elements/CarbonsReceived.cpp", + "Elements/CarbonsSent.cpp", + "Elements/DiscoInfo.cpp", + "Elements/Presence.cpp", + "Elements/Form.cpp", + "Elements/FormField.cpp", + "Elements/FormPage.cpp", + "Elements/FormSection.cpp", + "Elements/FormText.cpp", + "Elements/StreamFeatures.cpp", + "Elements/Element.cpp", + "Elements/ToplevelElement.cpp", + "Elements/IQ.cpp", + "Elements/Payload.cpp", + "Elements/PubSubPayload.cpp", + "Elements/PubSubOwnerPayload.cpp", + "Elements/PubSubEventPayload.cpp", + "Elements/RosterItemExchangePayload.cpp", + "Elements/RosterPayload.cpp", + "Elements/SecurityLabel.cpp", + "Elements/Stanza.cpp", + "Elements/StanzaAck.cpp", + "Elements/StatusShow.cpp", + "Elements/StreamManagementEnabled.cpp", + "Elements/StreamResume.cpp", + "Elements/StreamResumed.cpp", + "Elements/UserLocation.cpp", + "Elements/UserTune.cpp", + "Elements/VCard.cpp", + "Elements/MUCOccupant.cpp", + "Elements/ResultSet.cpp", + "Elements/Forwarded.cpp", + "Elements/MAMResult.cpp", + "Elements/MAMQuery.cpp", + "Elements/MAMFin.cpp", + "Elements/Thread.cpp", + "Elements/IsodeIQDelegation.cpp", + "Entity/Entity.cpp", + "Entity/PayloadPersister.cpp", + "MUC/MUC.cpp", + "MUC/MUCImpl.cpp", + "MUC/MUCManager.cpp", + "MUC/MUCRegistry.cpp", + "MUC/MUCBookmarkManager.cpp", + "PubSub/PubSubManager.cpp", + "PubSub/PubSubManagerImpl.cpp", + "Queries/IQChannel.cpp", + "Queries/IQHandler.cpp", + "Queries/IQRouter.cpp", + "Queries/Request.cpp", + "Queries/Responders/SoftwareVersionResponder.cpp", + "Roster/RosterStorage.cpp", + "Roster/RosterMemoryStorage.cpp", + "Roster/XMPPRoster.cpp", + "Roster/XMPPRosterImpl.cpp", + "Roster/XMPPRosterController.cpp", + "Serializer/AuthRequestSerializer.cpp", + "Serializer/AuthSuccessSerializer.cpp", + "Serializer/AuthChallengeSerializer.cpp", + "Serializer/AuthResponseSerializer.cpp", + "Serializer/CompressRequestSerializer.cpp", + "Serializer/ElementSerializer.cpp", + "Serializer/MessageSerializer.cpp", + "Serializer/StreamManagementEnabledSerializer.cpp", + "Serializer/StreamResumeSerializer.cpp", + "Serializer/StreamResumedSerializer.cpp", + "Serializer/ComponentHandshakeSerializer.cpp", + "Serializer/PayloadSerializer.cpp", + "Serializer/PayloadSerializerCollection.cpp", + "Serializer/PayloadSerializers/IBBSerializer.cpp", + "Serializer/PayloadSerializers/CapsInfoSerializer.cpp", + "Serializer/PayloadSerializers/CarbonsDisableSerializer.cpp", + "Serializer/PayloadSerializers/CarbonsEnableSerializer.cpp", + "Serializer/PayloadSerializers/CarbonsPrivateSerializer.cpp", + "Serializer/PayloadSerializers/CarbonsSentSerializer.cpp", + "Serializer/PayloadSerializers/CarbonsReceivedSerializer.cpp", + "Serializer/PayloadSerializers/ChatStateSerializer.cpp", + "Serializer/PayloadSerializers/DiscoInfoSerializer.cpp", + "Serializer/PayloadSerializers/DiscoItemsSerializer.cpp", + "Serializer/PayloadSerializers/ErrorSerializer.cpp", + "Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp", + "Serializer/PayloadSerializers/MUCPayloadSerializer.cpp", + "Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp", + "Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp", + "Serializer/PayloadSerializers/MUCOwnerPayloadSerializer.cpp", + "Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp", + "Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp", + "Serializer/PayloadSerializers/ResourceBindSerializer.cpp", + "Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp", + "Serializer/PayloadSerializers/RosterSerializer.cpp", + "Serializer/PayloadSerializers/SecurityLabelSerializer.cpp", + "Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp", + "Serializer/PayloadSerializers/SoftwareVersionSerializer.cpp", + "Serializer/PayloadSerializers/StreamInitiationSerializer.cpp", + "Serializer/PayloadSerializers/BytestreamsSerializer.cpp", + "Serializer/PayloadSerializers/VCardSerializer.cpp", + "Serializer/PayloadSerializers/VCardUpdateSerializer.cpp", + "Serializer/PayloadSerializers/StorageSerializer.cpp", + "Serializer/PayloadSerializers/PrivateStorageSerializer.cpp", + "Serializer/PayloadSerializers/DelaySerializer.cpp", + "Serializer/PayloadSerializers/CommandSerializer.cpp", + "Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp", + "Serializer/PayloadSerializers/SearchPayloadSerializer.cpp", + "Serializer/PayloadSerializers/FormSerializer.cpp", + "Serializer/PayloadSerializers/NicknameSerializer.cpp", + "Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp", + "Serializer/PayloadSerializers/JinglePayloadSerializer.cpp", + "Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp", + "Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp", + "Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp", + "Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp", + "Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp", + "Serializer/PayloadSerializers/DeliveryReceiptSerializer.cpp", + "Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.cpp", + "Serializer/PayloadSerializers/UserLocationSerializer.cpp", + "Serializer/PayloadSerializers/UserTuneSerializer.cpp", + "Serializer/PayloadSerializers/WhiteboardSerializer.cpp", + "Serializer/PayloadSerializers/ResultSetSerializer.cpp", + "Serializer/PayloadSerializers/ForwardedSerializer.cpp", + "Serializer/PayloadSerializers/MAMFinSerializer.cpp", + "Serializer/PayloadSerializers/MAMResultSerializer.cpp", + "Serializer/PayloadSerializers/MAMQuerySerializer.cpp", + "Serializer/PayloadSerializers/IsodeIQDelegationSerializer.cpp", + "Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp", + "Serializer/PayloadSerializers/ThreadSerializer.cpp", + "Serializer/PresenceSerializer.cpp", + "Serializer/StanzaSerializer.cpp", + "Serializer/StreamErrorSerializer.cpp", + "Serializer/StreamFeaturesSerializer.cpp", + "Serializer/XML/XMLElement.cpp", + "Serializer/XML/XMLNode.cpp", + "Serializer/XMPPSerializer.cpp", + "Session/Session.cpp", + "Session/SessionTracer.cpp", + "Session/SessionStream.cpp", + "Session/BasicSessionStream.cpp", + "Session/BOSHSessionStream.cpp", + "StringCodecs/Base64.cpp", + "StringCodecs/Hexify.cpp", + "Whiteboard/WhiteboardResponder.cpp", + "Whiteboard/WhiteboardSession.cpp", + "Whiteboard/IncomingWhiteboardSession.cpp", + "Whiteboard/OutgoingWhiteboardSession.cpp", + "Whiteboard/WhiteboardSessionManager.cpp", + "Whiteboard/WhiteboardServer.cpp", + "Whiteboard/WhiteboardClient.cpp", + "Elements/Whiteboard/WhiteboardColor.cpp", + "Whiteboard/WhiteboardTransformer.cpp", + ] + + elements = [ + "PubSub", "PubSubAffiliations", "PubSubAffiliation", "PubSubConfigure", "PubSubCreate", "PubSubDefault", + "PubSubItems", "PubSubItem", "PubSubOptions", "PubSubPublish", "PubSubRetract", "PubSubSubscribeOptions", + "PubSubSubscribe", "PubSubSubscriptions", "PubSubSubscription", "PubSubUnsubscribe", - "PubSubEvent", "PubSubEventAssociate", "PubSubEventCollection", "PubSubEventConfiguration", "PubSubEventDelete", - "PubSubEventDisassociate", "PubSubEventItem", "PubSubEventItems", "PubSubEventPurge", "PubSubEventRedirect", - "PubSubEventRetract", "PubSubEventSubscription", + "PubSubEvent", "PubSubEventAssociate", "PubSubEventCollection", "PubSubEventConfiguration", "PubSubEventDelete", + "PubSubEventDisassociate", "PubSubEventItem", "PubSubEventItems", "PubSubEventPurge", "PubSubEventRedirect", + "PubSubEventRetract", "PubSubEventSubscription", - "PubSubOwnerAffiliation", "PubSubOwnerAffiliations", "PubSubOwnerConfigure", "PubSubOwnerDefault", - "PubSubOwnerDelete", "PubSubOwnerPubSub", "PubSubOwnerPurge", "PubSubOwnerRedirect", - "PubSubOwnerSubscription", "PubSubOwnerSubscriptions", + "PubSubOwnerAffiliation", "PubSubOwnerAffiliations", "PubSubOwnerConfigure", "PubSubOwnerDefault", + "PubSubOwnerDelete", "PubSubOwnerPubSub", "PubSubOwnerPurge", "PubSubOwnerRedirect", + "PubSubOwnerSubscription", "PubSubOwnerSubscriptions", - "PubSubError", - ] - for element in elements : - sources += [ - "Elements/" + element + ".cpp", - "Serializer/PayloadSerializers/" + element + "Serializer.cpp", - "Parser/PayloadParsers/" + element + "Parser.cpp", - ] + "PubSubError", + ] + for element in elements : + sources += [ + "Elements/" + element + ".cpp", + "Serializer/PayloadSerializers/" + element + "Serializer.cpp", + "Parser/PayloadParsers/" + element + "Parser.cpp", + ] - SConscript(dirs = [ - "Avatars", - "Base", - "IDN", - "SASL", - "TLS", - "Crypto", - "EventLoop", - "Parser", - "JID", - "Jingle", - "Disco", - "VCards", - "Network", - "Presence", - "FileTransfer", - "History", - "StreamStack", - "LinkLocal", - "StreamManagement", - "Component", - "AdHoc" - ]) - if env["build_examples"] : - SConscript(dirs = [ - "Config", - "Examples" - ]) - env.SConscript(test_only = True, dirs = [ - "QA", - ]) + SConscript(dirs = [ + "Avatars", + "Base", + "IDN", + "SASL", + "TLS", + "Crypto", + "EventLoop", + "Parser", + "JID", + "Jingle", + "Disco", + "VCards", + "Network", + "Presence", + "FileTransfer", + "History", + "StreamStack", + "LinkLocal", + "StreamManagement", + "Component", + "AdHoc" + ]) + if env["build_examples"] : + SConscript(dirs = [ + "Config", + "Examples" + ]) + env.SConscript(test_only = True, dirs = [ + "QA", + ]) - myenv = swiften_env.Clone() - if myenv["PLATFORM"] != "darwin" and myenv["PLATFORM"] != "win32" and myenv.get("HAVE_GCONF", 0) : - env.MergeFlags(env["GCONF_FLAGS"]) + myenv = swiften_env.Clone() + if myenv["PLATFORM"] != "darwin" and myenv["PLATFORM"] != "win32" and myenv.get("HAVE_GCONF", 0) : + env.MergeFlags(env["GCONF_FLAGS"]) - if myenv["SWIFTEN_DLL"] : - if myenv["PLATFORM"] == "posix" : - myenv.Append(LINKFLAGS = ["-Wl,-soname,libSwiften.so.$SWIFTEN_VERSION_MAJOR"]) - myenv["SHLIBSUFFIX"] = "" - elif myenv["PLATFORM"] == "darwin" : - myenv.Append(LINKFLAGS = ["-Wl,-install_name,${SHLIBPREFIX}Swiften.${SWIFTEN_VERSION_MAJOR}${SHLIBSUFFIX}", "-Wl,-compatibility_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}", "-Wl,-current_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}"]) - elif myenv["PLATFORM"] == "win32" : - res_env = myenv.Clone() - res_env.Append(CPPDEFINES = [ - ("SWIFTEN_LIBRARY_FILE", "\"\\\"${SWIFTEN_LIBRARY_FILE}\\\"\""), - ("SWIFTEN_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])), - ("SWIFTEN_VERSION_MAJOR", "${SWIFTEN_VERSION_MAJOR}"), - ("SWIFTEN_VERSION_MINOR", "${SWIFTEN_VERSION_MINOR}"), - ("SWIFTEN_VERSION_PATCH", "${SWIFTEN_VERSION_PATCH}"), - ]) - res = res_env.RES("Swiften.rc") - # For some reason, SCons isn't picking up the dependency correctly - # Adding it explicitly until i figure out why - res_env.Depends(res, "Version.h") - sources += res + if myenv["SWIFTEN_DLL"] : + if myenv["PLATFORM"] == "posix" : + myenv.Append(LINKFLAGS = ["-Wl,-soname,libSwiften.so.$SWIFTEN_VERSION_MAJOR"]) + myenv["SHLIBSUFFIX"] = "" + elif myenv["PLATFORM"] == "darwin" : + myenv.Append(LINKFLAGS = ["-Wl,-install_name,${SHLIBPREFIX}Swiften.${SWIFTEN_VERSION_MAJOR}${SHLIBSUFFIX}", "-Wl,-compatibility_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}", "-Wl,-current_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}"]) + elif myenv["PLATFORM"] == "win32" : + res_env = myenv.Clone() + res_env.Append(CPPDEFINES = [ + ("SWIFTEN_LIBRARY_FILE", "\"\\\"${SWIFTEN_LIBRARY_FILE}\\\"\""), + ("SWIFTEN_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])), + ("SWIFTEN_VERSION_MAJOR", "${SWIFTEN_VERSION_MAJOR}"), + ("SWIFTEN_VERSION_MINOR", "${SWIFTEN_VERSION_MINOR}"), + ("SWIFTEN_VERSION_PATCH", "${SWIFTEN_VERSION_PATCH}"), + ]) + res = res_env.RES("Swiften.rc") + # For some reason, SCons isn't picking up the dependency correctly + # Adding it explicitly until i figure out why + res_env.Depends(res, "Version.h") + sources += res - swiften_lib = myenv.SwiftenLibrary(swiften_env["SWIFTEN_LIBRARY_FILE"], sources + swiften_env["SWIFTEN_OBJECTS"]) - def symlink(env, target, source) : - if os.path.exists(str(target[0])) : - os.unlink(str(target[0])) - os.symlink(source[0].get_contents(), str(target[0])) - for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] : - myenv.Command(myenv.File(alias), [myenv.Value(swiften_lib[0].name), swiften_lib[0]], symlink) + swiften_lib = myenv.SwiftenLibrary(swiften_env["SWIFTEN_LIBRARY_FILE"], sources + swiften_env["SWIFTEN_OBJECTS"]) + def symlink(env, target, source) : + if os.path.exists(str(target[0])) : + os.unlink(str(target[0])) + os.symlink(source[0].get_contents(), str(target[0])) + for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] : + myenv.Command(myenv.File(alias), [myenv.Value(swiften_lib[0].name), swiften_lib[0]], symlink) - env.Append(UNITTEST_SOURCES = [ - File("Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp"), - File("Avatars/UnitTest/VCardAvatarManagerTest.cpp"), - File("Avatars/UnitTest/CombinedAvatarProviderTest.cpp"), - File("Avatars/UnitTest/AvatarManagerImplTest.cpp"), - File("Base/UnitTest/IDGeneratorTest.cpp"), - File("Base/UnitTest/SimpleIDGeneratorTest.cpp"), - File("Base/UnitTest/StringTest.cpp"), - File("Base/UnitTest/DateTimeTest.cpp"), - File("Base/UnitTest/ByteArrayTest.cpp"), - File("Base/UnitTest/URLTest.cpp"), - File("Base/UnitTest/PathTest.cpp"), - File("Chat/UnitTest/ChatStateNotifierTest.cpp"), -# File("Chat/UnitTest/ChatStateTrackerTest.cpp"), - File("Client/UnitTest/ClientSessionTest.cpp"), - File("Client/UnitTest/NickResolverTest.cpp"), - File("Client/UnitTest/ClientBlockListManagerTest.cpp"), - File("Client/UnitTest/BlockListImplTest.cpp"), - File("Compress/UnitTest/ZLibCompressorTest.cpp"), - File("Compress/UnitTest/ZLibDecompressorTest.cpp"), - File("Component/UnitTest/ComponentHandshakeGeneratorTest.cpp"), - File("Component/UnitTest/ComponentConnectorTest.cpp"), - File("Component/UnitTest/ComponentSessionTest.cpp"), - File("Disco/UnitTest/CapsInfoGeneratorTest.cpp"), - File("Disco/UnitTest/CapsManagerTest.cpp"), - File("Disco/UnitTest/EntityCapsManagerTest.cpp"), - File("Disco/UnitTest/JIDDiscoInfoResponderTest.cpp"), - File("Disco/UnitTest/DiscoInfoResponderTest.cpp"), - File("Elements/UnitTest/IQTest.cpp"), - File("Elements/UnitTest/StanzaTest.cpp"), - File("Elements/UnitTest/FormTest.cpp"), - File("EventLoop/UnitTest/EventLoopTest.cpp"), - File("EventLoop/UnitTest/SimpleEventLoopTest.cpp"), -# File("History/UnitTest/SQLiteHistoryManagerTest.cpp"), - File("JID/UnitTest/JIDTest.cpp"), - File("LinkLocal/UnitTest/LinkLocalConnectorTest.cpp"), - File("LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp"), - File("LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp"), - File("LinkLocal/UnitTest/LinkLocalServiceTest.cpp"), - File("MUC/UnitTest/MUCTest.cpp"), - File("MUC/UnitTest/MockMUC.cpp"), - File("Network/UnitTest/HostAddressTest.cpp"), - File("Network/UnitTest/ConnectorTest.cpp"), - File("Network/UnitTest/ChainedConnectorTest.cpp"), - File("Network/UnitTest/DomainNameServiceQueryTest.cpp"), - File("Network/UnitTest/HTTPConnectProxiedConnectionTest.cpp"), - File("Network/UnitTest/BOSHConnectionTest.cpp"), - File("Network/UnitTest/BOSHConnectionPoolTest.cpp"), - File("Parser/PayloadParsers/UnitTest/BlockParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/BodyParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/DiscoInfoParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/DiscoItemsParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/ErrorParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/FormParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/CommandParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/PriorityParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/RawXMLPayloadParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/ResourceBindParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/RosterItemExchangeParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/RosterParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/IBBParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/InBandRegistrationPayloadParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/JingleParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/SearchPayloadParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/SecurityLabelParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/SecurityLabelsCatalogParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/SoftwareVersionParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/StatusParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/StatusShowParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/StreamInitiationParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/VCardParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/StorageParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/PrivateStorageParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/VCardUpdateParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/ReplaceTest.cpp"), - File("Parser/PayloadParsers/UnitTest/MUCAdminPayloadParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/MUCUserPayloadParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/DeliveryReceiptParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/IdleParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/ForwardedParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/MAMFinParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/MAMResultParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/CarbonsParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/UserTuneParserTest.cpp"), - File("Parser/PayloadParsers/UnitTest/UserLocationParserTest.cpp"), - File("Parser/UnitTest/BOSHBodyExtractorTest.cpp"), - File("Parser/UnitTest/AttributeMapTest.cpp"), - File("Parser/UnitTest/EnumParserTest.cpp"), - File("Parser/UnitTest/IQParserTest.cpp"), - File("Parser/UnitTest/GenericPayloadTreeParserTest.cpp"), - File("Parser/UnitTest/MessageParserTest.cpp"), - File("Parser/UnitTest/PayloadParserFactoryCollectionTest.cpp"), - File("Parser/UnitTest/PresenceParserTest.cpp"), - File("Parser/UnitTest/StanzaAckParserTest.cpp"), - File("Parser/UnitTest/SerializingParserTest.cpp"), - File("Parser/UnitTest/StanzaParserTest.cpp"), - File("Parser/UnitTest/StreamFeaturesParserTest.cpp"), - File("Parser/UnitTest/StreamManagementEnabledParserTest.cpp"), - File("Parser/UnitTest/XMLParserTest.cpp"), - File("Parser/UnitTest/XMPPParserTest.cpp"), - File("Presence/UnitTest/PresenceOracleTest.cpp"), - File("Presence/UnitTest/DirectedPresenceSenderTest.cpp"), - File("Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp"), - File("Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp"), - File("Queries/UnitTest/IQRouterTest.cpp"), - File("Queries/UnitTest/RequestTest.cpp"), - File("Queries/UnitTest/ResponderTest.cpp"), - File("Roster/UnitTest/XMPPRosterImplTest.cpp"), - File("Roster/UnitTest/XMPPRosterControllerTest.cpp"), - File("Roster/UnitTest/XMPPRosterSignalHandler.cpp"), - File("Serializer/PayloadSerializers/UnitTest/PayloadsSerializer.cpp"), - File("Serializer/PayloadSerializers/UnitTest/BlockSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/CarbonsSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/CapsInfoSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ChatStateSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/FormSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/DiscoInfoSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ErrorSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/IBBSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/PrioritySerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ResourceBindSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/RosterItemExchangeSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/SearchPayloadSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/SoftwareVersionSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/StatusSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/StatusShowSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/StreamInitiationSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/InBandRegistrationPayloadSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/IsodeIQDelegationSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/VCardSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/StorageSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/PrivateStorageSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ReplaceSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/MUCAdminPayloadSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/DeliveryReceiptSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/IdleSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ResultSetSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/ForwardedSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/MAMFinSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/MAMResultSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/PubSubItemSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/PubSubItemsSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/UserTuneSerializerTest.cpp"), - File("Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp"), - File("Serializer/UnitTest/StreamFeaturesSerializerTest.cpp"), - File("Serializer/UnitTest/AuthSuccessSerializerTest.cpp"), - File("Serializer/UnitTest/AuthChallengeSerializerTest.cpp"), - File("Serializer/UnitTest/AuthRequestSerializerTest.cpp"), - File("Serializer/UnitTest/AuthResponseSerializerTest.cpp"), - File("Serializer/UnitTest/XMPPSerializerTest.cpp"), - File("Serializer/XML/UnitTest/XMLElementTest.cpp"), - File("StreamManagement/UnitTest/StanzaAckRequesterTest.cpp"), - File("StreamManagement/UnitTest/StanzaAckResponderTest.cpp"), - File("StreamStack/UnitTest/StreamStackTest.cpp"), - File("StreamStack/UnitTest/XMPPLayerTest.cpp"), - File("StringCodecs/UnitTest/Base64Test.cpp"), - File("StringCodecs/UnitTest/HexifyTest.cpp"), - File("StringCodecs/UnitTest/PBKDF2Test.cpp"), - File("TLS/UnitTest/ServerIdentityVerifierTest.cpp"), - File("TLS/UnitTest/CertificateTest.cpp"), - File("VCards/UnitTest/VCardManagerTest.cpp"), - File("Whiteboard/UnitTest/WhiteboardServerTest.cpp"), - File("Whiteboard/UnitTest/WhiteboardClientTest.cpp"), - ]) - - # Generate the Swiften header - def relpath(path, start) : - i = len(os.path.commonprefix([path, start])) - return path[i+1:] - swiften_header = "#pragma once\n" - swiften_includes = [] - swiften_public_includes = [] - top_path = env.Dir("..").abspath - for root, dirs, files in os.walk(env.Dir(".").abspath) : - if root.endswith("UnitTest") : - continue - for file in files : - if not file.endswith(".h") : - continue - include = relpath(os.path.join(root, file), top_path) - if swiften_env["PLATFORM"] == "win32" : - include = include.replace("\\", "/") - swiften_includes.append(include) - # Private modules - if root.endswith("Config") : - continue + env.Append(UNITTEST_SOURCES = [ + File("Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp"), + File("Avatars/UnitTest/VCardAvatarManagerTest.cpp"), + File("Avatars/UnitTest/CombinedAvatarProviderTest.cpp"), + File("Avatars/UnitTest/AvatarManagerImplTest.cpp"), + File("Base/UnitTest/IDGeneratorTest.cpp"), + File("Base/UnitTest/SimpleIDGeneratorTest.cpp"), + File("Base/UnitTest/StringTest.cpp"), + File("Base/UnitTest/DateTimeTest.cpp"), + File("Base/UnitTest/ByteArrayTest.cpp"), + File("Base/UnitTest/URLTest.cpp"), + File("Base/UnitTest/PathTest.cpp"), + File("Chat/UnitTest/ChatStateNotifierTest.cpp"), +# File("Chat/UnitTest/ChatStateTrackerTest.cpp"), + File("Client/UnitTest/ClientSessionTest.cpp"), + File("Client/UnitTest/NickResolverTest.cpp"), + File("Client/UnitTest/ClientBlockListManagerTest.cpp"), + File("Client/UnitTest/BlockListImplTest.cpp"), + File("Compress/UnitTest/ZLibCompressorTest.cpp"), + File("Compress/UnitTest/ZLibDecompressorTest.cpp"), + File("Component/UnitTest/ComponentHandshakeGeneratorTest.cpp"), + File("Component/UnitTest/ComponentConnectorTest.cpp"), + File("Component/UnitTest/ComponentSessionTest.cpp"), + File("Disco/UnitTest/CapsInfoGeneratorTest.cpp"), + File("Disco/UnitTest/CapsManagerTest.cpp"), + File("Disco/UnitTest/EntityCapsManagerTest.cpp"), + File("Disco/UnitTest/JIDDiscoInfoResponderTest.cpp"), + File("Disco/UnitTest/DiscoInfoResponderTest.cpp"), + File("Elements/UnitTest/IQTest.cpp"), + File("Elements/UnitTest/StanzaTest.cpp"), + File("Elements/UnitTest/FormTest.cpp"), + File("EventLoop/UnitTest/EventLoopTest.cpp"), + File("EventLoop/UnitTest/SimpleEventLoopTest.cpp"), +# File("History/UnitTest/SQLiteHistoryManagerTest.cpp"), + File("JID/UnitTest/JIDTest.cpp"), + File("LinkLocal/UnitTest/LinkLocalConnectorTest.cpp"), + File("LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp"), + File("LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp"), + File("LinkLocal/UnitTest/LinkLocalServiceTest.cpp"), + File("MUC/UnitTest/MUCTest.cpp"), + File("MUC/UnitTest/MockMUC.cpp"), + File("Network/UnitTest/HostAddressTest.cpp"), + File("Network/UnitTest/ConnectorTest.cpp"), + File("Network/UnitTest/ChainedConnectorTest.cpp"), + File("Network/UnitTest/DomainNameServiceQueryTest.cpp"), + File("Network/UnitTest/HTTPConnectProxiedConnectionTest.cpp"), + File("Network/UnitTest/BOSHConnectionTest.cpp"), + File("Network/UnitTest/BOSHConnectionPoolTest.cpp"), + File("Parser/PayloadParsers/UnitTest/BlockParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/BodyParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/DiscoInfoParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/DiscoItemsParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/ErrorParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/FormParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/CommandParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/PriorityParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/RawXMLPayloadParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/ResourceBindParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/RosterItemExchangeParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/RosterParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/IBBParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/InBandRegistrationPayloadParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/JingleParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/SearchPayloadParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/SecurityLabelParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/SecurityLabelsCatalogParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/SoftwareVersionParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/StatusParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/StatusShowParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/StreamInitiationParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/VCardParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/StorageParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/PrivateStorageParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/VCardUpdateParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/ReplaceTest.cpp"), + File("Parser/PayloadParsers/UnitTest/MUCAdminPayloadParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/MUCUserPayloadParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/DeliveryReceiptParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/IdleParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/ForwardedParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/MAMFinParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/MAMResultParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/CarbonsParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/UserTuneParserTest.cpp"), + File("Parser/PayloadParsers/UnitTest/UserLocationParserTest.cpp"), + File("Parser/UnitTest/BOSHBodyExtractorTest.cpp"), + File("Parser/UnitTest/AttributeMapTest.cpp"), + File("Parser/UnitTest/EnumParserTest.cpp"), + File("Parser/UnitTest/IQParserTest.cpp"), + File("Parser/UnitTest/GenericPayloadTreeParserTest.cpp"), + File("Parser/UnitTest/MessageParserTest.cpp"), + File("Parser/UnitTest/PayloadParserFactoryCollectionTest.cpp"), + File("Parser/UnitTest/PresenceParserTest.cpp"), + File("Parser/UnitTest/StanzaAckParserTest.cpp"), + File("Parser/UnitTest/SerializingParserTest.cpp"), + File("Parser/UnitTest/StanzaParserTest.cpp"), + File("Parser/UnitTest/StreamFeaturesParserTest.cpp"), + File("Parser/UnitTest/StreamManagementEnabledParserTest.cpp"), + File("Parser/UnitTest/XMLParserTest.cpp"), + File("Parser/UnitTest/XMPPParserTest.cpp"), + File("Presence/UnitTest/PresenceOracleTest.cpp"), + File("Presence/UnitTest/DirectedPresenceSenderTest.cpp"), + File("Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp"), + File("Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp"), + File("Queries/UnitTest/IQRouterTest.cpp"), + File("Queries/UnitTest/RequestTest.cpp"), + File("Queries/UnitTest/ResponderTest.cpp"), + File("Roster/UnitTest/XMPPRosterImplTest.cpp"), + File("Roster/UnitTest/XMPPRosterControllerTest.cpp"), + File("Roster/UnitTest/XMPPRosterSignalHandler.cpp"), + File("Serializer/PayloadSerializers/UnitTest/PayloadsSerializer.cpp"), + File("Serializer/PayloadSerializers/UnitTest/BlockSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/CarbonsSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/CapsInfoSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ChatStateSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/FormSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/DiscoInfoSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ErrorSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/IBBSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/PrioritySerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ResourceBindSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/RosterItemExchangeSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/SearchPayloadSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/SoftwareVersionSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/StatusSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/StatusShowSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/StreamInitiationSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/InBandRegistrationPayloadSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/IsodeIQDelegationSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/VCardSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/StorageSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/PrivateStorageSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ReplaceSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/MUCAdminPayloadSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/DeliveryReceiptSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/IdleSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ResultSetSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/ForwardedSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/MAMFinSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/MAMResultSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/PubSubItemSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/PubSubItemsSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/UserTuneSerializerTest.cpp"), + File("Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp"), + File("Serializer/UnitTest/StreamFeaturesSerializerTest.cpp"), + File("Serializer/UnitTest/AuthSuccessSerializerTest.cpp"), + File("Serializer/UnitTest/AuthChallengeSerializerTest.cpp"), + File("Serializer/UnitTest/AuthRequestSerializerTest.cpp"), + File("Serializer/UnitTest/AuthResponseSerializerTest.cpp"), + File("Serializer/UnitTest/XMPPSerializerTest.cpp"), + File("Serializer/XML/UnitTest/XMLElementTest.cpp"), + File("StreamManagement/UnitTest/StanzaAckRequesterTest.cpp"), + File("StreamManagement/UnitTest/StanzaAckResponderTest.cpp"), + File("StreamStack/UnitTest/StreamStackTest.cpp"), + File("StreamStack/UnitTest/XMPPLayerTest.cpp"), + File("StringCodecs/UnitTest/Base64Test.cpp"), + File("StringCodecs/UnitTest/HexifyTest.cpp"), + File("StringCodecs/UnitTest/PBKDF2Test.cpp"), + File("TLS/UnitTest/ServerIdentityVerifierTest.cpp"), + File("TLS/UnitTest/CertificateTest.cpp"), + File("VCards/UnitTest/VCardManagerTest.cpp"), + File("Whiteboard/UnitTest/WhiteboardServerTest.cpp"), + File("Whiteboard/UnitTest/WhiteboardClientTest.cpp"), + ]) + + # Generate the Swiften header + def relpath(path, start) : + i = len(os.path.commonprefix([path, start])) + return path[i+1:] + swiften_header = "#pragma once\n" + swiften_includes = [] + swiften_public_includes = [] + top_path = env.Dir("..").abspath + for root, dirs, files in os.walk(env.Dir(".").abspath) : + if root.endswith("UnitTest") : + continue + for file in files : + if not file.endswith(".h") : + continue + include = relpath(os.path.join(root, file), top_path) + if swiften_env["PLATFORM"] == "win32" : + include = include.replace("\\", "/") + swiften_includes.append(include) + # Private modules + if root.endswith("Config") : + continue - # Library-specfifc private modules - if root.endswith("OpenSSL") or root.endswith("Cocoa") or root.endswith("Qt") or root.endswith("Avahi") or root.endswith("Bonjour") : - continue + # Library-specfifc private modules + if root.endswith("OpenSSL") or root.endswith("Cocoa") or root.endswith("Qt") or root.endswith("Avahi") or root.endswith("Bonjour") : + continue - # Library-specific files - if file.endswith("_Private.h") or file.startswith("Schannel") or file.startswith("CAPI") or file.startswith("MacOSX") or file.startswith("SecureTransport") or file.startswith("Windows") or file.endswith("_Windows.h") or file.startswith("SQLite") or file == "ICUConverter.h" or file == "UnboundDomainNameResolver.h" : - continue + # Library-specific files + if file.endswith("_Private.h") or file.startswith("Schannel") or file.startswith("CAPI") or file.startswith("MacOSX") or file.startswith("SecureTransport") or file.startswith("Windows") or file.endswith("_Windows.h") or file.startswith("SQLite") or file == "ICUConverter.h" or file == "UnboundDomainNameResolver.h" : + continue - # Specific headers we don't want to globally include - if file == "Swiften.h" or file == "foreach.h" or file == "Log.h" or file == "format.h" : - continue - swiften_header += "#include <" + include + ">\n" - swiften_public_includes.append(include) - swiften_includes.append(include) - swiften_env.WriteVal("Swiften.h", swiften_env.Value(swiften_header)) - swiften_includes.append("Swiften/Swiften.h") + # Specific headers we don't want to globally include + if file == "Swiften.h" or file == "foreach.h" or file == "Log.h" or file == "format.h" : + continue + swiften_header += "#include <" + include + ">\n" + swiften_public_includes.append(include) + swiften_includes.append(include) + swiften_env.WriteVal("Swiften.h", swiften_env.Value(swiften_header)) + swiften_includes.append("Swiften/Swiften.h") - version_header = "#pragma once\n\n" - version_header += "#define SWIFTEN_VERSION 0x%02X%02X%02X\n" % (swiften_env["SWIFTEN_VERSION_MAJOR"], swiften_env["SWIFTEN_VERSION_MINOR"], swiften_env["SWIFTEN_VERSION_PATCH"]) - version_header += "#define SWIFTEN_VERSION_STRING \"%s\"\n" % swiften_env["SWIFTEN_VERSION"] - swiften_env.WriteVal("Version.h", swiften_env.Value(version_header)) - swiften_includes.append("Swiften/Version.h") + version_header = "#pragma once\n\n" + version_header += "#define SWIFTEN_VERSION 0x%02X%02X%02X\n" % (swiften_env["SWIFTEN_VERSION_MAJOR"], swiften_env["SWIFTEN_VERSION_MINOR"], swiften_env["SWIFTEN_VERSION_PATCH"]) + version_header += "#define SWIFTEN_VERSION_STRING \"%s\"\n" % swiften_env["SWIFTEN_VERSION"] + swiften_env.WriteVal("Version.h", swiften_env.Value(version_header)) + swiften_includes.append("Swiften/Version.h") - # Check headers - if env["check_headers"] : - test_env = swiften_env.Clone() - for header in swiften_public_includes: - program_text = "#include <%s>\n" % (header) - filename = Dir('#/.sconf_temp').abspath + ("/%s.cpp" % (urllib.quote(header, '') )) - text_file = open(filename, "w") - text_file.write(program_text) - text_file.close() - test_obj = test_env.Object(File("#/.sconf_temp/%s.cpp" % (urllib.quote(header, '') ))) - test_env.Default(test_obj) + # Check headers + if env["check_headers"] : + test_env = swiften_env.Clone() + for header in swiften_public_includes: + program_text = "#include <%s>\n" % (header) + filename = Dir('#/.sconf_temp').abspath + ("/%s.cpp" % (urllib.quote(header, '') )) + text_file = open(filename, "w") + text_file.write(program_text) + text_file.close() + test_obj = test_env.Object(File("#/.sconf_temp/%s.cpp" % (urllib.quote(header, '') ))) + test_env.Default(test_obj) - # Install swiften - if swiften_env.get("SWIFTEN_INSTALLDIR", "") : - swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib"), swiften_lib) - for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] : - myenv.Command(myenv.File(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib", alias)), [env.Value(swiften_lib[0].name), swiften_lib[0]], symlink) - for include in swiften_includes : - swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "include", os.path.dirname(include)), "#/" + include) + # Install swiften + if swiften_env.get("SWIFTEN_INSTALLDIR", "") : + swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib"), swiften_lib) + for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] : + myenv.Command(myenv.File(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib", alias)), [env.Value(swiften_lib[0].name), swiften_lib[0]], symlink) + for include in swiften_includes : + swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "include", os.path.dirname(include)), "#/" + include) diff --git a/Swiften/StreamManagement/SConscript b/Swiften/StreamManagement/SConscript index ce95fc7..8eab91b 100644 --- a/Swiften/StreamManagement/SConscript +++ b/Swiften/StreamManagement/SConscript @@ -1,8 +1,8 @@ Import("swiften_env") sources = [ - "StanzaAckRequester.cpp", - "StanzaAckResponder.cpp", - ] + "StanzaAckRequester.cpp", + "StanzaAckResponder.cpp", + ] swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources)) diff --git a/Swiften/StreamStack/SConscript b/Swiften/StreamStack/SConscript index 06fcc03..0a8bab1 100644 --- a/Swiften/StreamStack/SConscript +++ b/Swiften/StreamStack/SConscript @@ -3,14 +3,14 @@ Import("swiften_env") myenv = swiften_env.Clone() sources = [ - "HighLayer.cpp", - "LowLayer.cpp", - "StreamStack.cpp", - "ConnectionLayer.cpp", - "TLSLayer.cpp", - "WhitespacePingLayer.cpp", - "XMPPLayer.cpp", - ] + "HighLayer.cpp", + "LowLayer.cpp", + "StreamStack.cpp", + "ConnectionLayer.cpp", + "TLSLayer.cpp", + "WhitespacePingLayer.cpp", + "XMPPLayer.cpp", + ] objects = myenv.SwiftenObject(sources) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/TLS/SConscript b/Swiften/TLS/SConscript index c1ff425..68bf50b 100644 --- a/Swiften/TLS/SConscript +++ b/Swiften/TLS/SConscript @@ -1,40 +1,40 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "Certificate.cpp", - "CertificateFactory.cpp", - "CertificateTrustChecker.cpp", - "ServerIdentityVerifier.cpp", - "TLSContext.cpp", - "TLSContextFactory.cpp", - ]) - + "Certificate.cpp", + "CertificateFactory.cpp", + "CertificateTrustChecker.cpp", + "ServerIdentityVerifier.cpp", + "TLSContext.cpp", + "TLSContextFactory.cpp", + ]) + myenv = swiften_env.Clone() if myenv.get("HAVE_OPENSSL", 0) : - myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) - objects += myenv.SwiftenObject([ - "OpenSSL/OpenSSLContext.cpp", - "OpenSSL/OpenSSLCertificate.cpp", - "OpenSSL/OpenSSLContextFactory.cpp", - ]) - myenv.Append(CPPDEFINES = "HAVE_OPENSSL") + myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) + objects += myenv.SwiftenObject([ + "OpenSSL/OpenSSLContext.cpp", + "OpenSSL/OpenSSLCertificate.cpp", + "OpenSSL/OpenSSLContextFactory.cpp", + ]) + myenv.Append(CPPDEFINES = "HAVE_OPENSSL") elif myenv.get("HAVE_SCHANNEL", 0) : - swiften_env.Append(LIBS = ["Winscard"]) - objects += myenv.SwiftenObject([ - "CAPICertificate.cpp", - "Schannel/SchannelContext.cpp", - "Schannel/SchannelCertificate.cpp", - "Schannel/SchannelContextFactory.cpp", - ]) - myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") + swiften_env.Append(LIBS = ["Winscard"]) + objects += myenv.SwiftenObject([ + "CAPICertificate.cpp", + "Schannel/SchannelContext.cpp", + "Schannel/SchannelCertificate.cpp", + "Schannel/SchannelContextFactory.cpp", + ]) + myenv.Append(CPPDEFINES = "HAVE_SCHANNEL") elif myenv.get("HAVE_SECURETRANSPORT", 0) : - #swiften_env.Append(LIBS = ["Winscard"]) - objects += myenv.SwiftenObject([ - "SecureTransport/SecureTransportContext.mm", - "SecureTransport/SecureTransportCertificate.mm", - "SecureTransport/SecureTransportContextFactory.cpp", - ]) - myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT") + #swiften_env.Append(LIBS = ["Winscard"]) + objects += myenv.SwiftenObject([ + "SecureTransport/SecureTransportContext.mm", + "SecureTransport/SecureTransportCertificate.mm", + "SecureTransport/SecureTransportContextFactory.cpp", + ]) + myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT") objects += myenv.SwiftenObject(["PlatformTLSFactories.cpp"]) diff --git a/Swiften/VCards/SConscript b/Swiften/VCards/SConscript index c20c17d..d8189cb 100644 --- a/Swiften/VCards/SConscript +++ b/Swiften/VCards/SConscript @@ -1,7 +1,7 @@ Import("swiften_env") objects = swiften_env.SwiftenObject([ - "VCardManager.cpp", - "VCardStorage.cpp", - ]) + "VCardManager.cpp", + "VCardStorage.cpp", + ]) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) |