| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |  | 
| 2 # Use of this source code is governed by a BSD-style license that can be |  | 
| 3 # found in the LICENSE file. |  | 
| 4 |  | 
| 5 import re |  | 
| 6 |  | 
| 7 Import('env') |  | 
| 8 |  | 
| 9 env = env.Clone(OPEN_VCDIFF_DIR='open-vcdiff') |  | 
| 10 |  | 
| 11 cpppath = [ |  | 
| 12     '$OPEN_VCDIFF_DIR/src', |  | 
| 13 ] |  | 
| 14 |  | 
| 15 if env.Bit('windows'): |  | 
| 16   cpppath.append('$OPEN_VCDIFF_DIR/vsprojects') |  | 
| 17 |  | 
| 18 if env.Bit('linux'): |  | 
| 19   cpppath.append('linux') |  | 
| 20 |  | 
| 21 env.Prepend(CPPPATH = cpppath) |  | 
| 22 |  | 
| 23 input_files = ChromeFileList([ |  | 
| 24   # TODO(sgk):  violate standard indentation so we don't have to |  | 
| 25   # reindent too much when we remove the explicit MSVSFilter() calls |  | 
| 26   # in favor of generating the hierarchy to reflect the file system. |  | 
| 27   MSVSFilter('Header Files', [ |  | 
| 28     'open-vcdiff/src/blockhash.h', |  | 
| 29     'open-vcdiff/src/checksum.h', |  | 
| 30     'open-vcdiff/src/codetable.h', |  | 
| 31     'open-vcdiff/src/compile_assert.h', |  | 
| 32     'open-vcdiff/vsprojects/config.h', |  | 
| 33     'open-vcdiff/src/decodetable.h', |  | 
| 34     'open-vcdiff/src/encodetable.h', |  | 
| 35     'open-vcdiff/src/headerparser.h', |  | 
| 36     'open-vcdiff/src/instruction_map.h', |  | 
| 37     'open-vcdiff/src/logging.h', |  | 
| 38     'open-vcdiff/src/google/output_string.h', |  | 
| 39     'open-vcdiff/src/rolling_hash.h', |  | 
| 40     'open-vcdiff/vsprojects/stdint.h', |  | 
| 41     'open-vcdiff/src/testing.h', |  | 
| 42     'open-vcdiff/src/varint_bigendian.h', |  | 
| 43     'open-vcdiff/src/google/vcdecoder.h', |  | 
| 44     'open-vcdiff/src/vcdiff_defs.h', |  | 
| 45     'open-vcdiff/src/vcdiffengine.h', |  | 
| 46     'open-vcdiff/src/zconf.h', |  | 
| 47     'open-vcdiff/src/zlib.h', |  | 
| 48   ]), |  | 
| 49   MSVSFilter('Source Files', [ |  | 
| 50     'open-vcdiff/src/addrcache.cc', |  | 
| 51     'open-vcdiff/src/adler32.c', |  | 
| 52     'open-vcdiff/src/blockhash.cc', |  | 
| 53     'open-vcdiff/src/codetable.cc', |  | 
| 54     'open-vcdiff/src/decodetable.cc', |  | 
| 55     'open-vcdiff/src/encodetable.cc', |  | 
| 56     'open-vcdiff/src/headerparser.cc', |  | 
| 57     'open-vcdiff/src/instruction_map.cc', |  | 
| 58     'open-vcdiff/src/logging.cc', |  | 
| 59     'open-vcdiff/src/varint_bigendian.cc', |  | 
| 60     'open-vcdiff/src/vcdecoder.cc', |  | 
| 61     'open-vcdiff/src/vcdiffengine.cc', |  | 
| 62   ]), |  | 
| 63 ]) |  | 
| 64 |  | 
| 65 env.ChromeLibrary('sdch', input_files) |  | 
| 66 |  | 
| 67 if env.Bit('posix'): |  | 
| 68 |  | 
| 69   # Generate a target config.h file from a source config.h.in file. |  | 
| 70   # |  | 
| 71   # The list of defines has been taken empirically from Autoconf |  | 
| 72   # (./configure) runs on Mac OS X and Ubuntu Hardy. |  | 
| 73 |  | 
| 74   defines = [ |  | 
| 75       'HAVE_DLFCN_H', |  | 
| 76       'HAVE_FNMATCH_H', |  | 
| 77       'HAVE_GETOPT_H', |  | 
| 78       'HAVE_GETTIMEOFDAY', |  | 
| 79       'HAVE_INTTYPES_H', |  | 
| 80       'HAVE_MEMORY_H', |  | 
| 81       'HAVE_MPROTECT', |  | 
| 82       'HAVE_PTHREAD', |  | 
| 83       'HAVE_STDINT_H', |  | 
| 84       'HAVE_STDLIB_H', |  | 
| 85       'HAVE_STRINGS_H', |  | 
| 86       'HAVE_STRING_H', |  | 
| 87       'HAVE_STRTOLL', |  | 
| 88       'HAVE_STRTOQ', |  | 
| 89       'HAVE_SYS_MMAN_H', |  | 
| 90       'HAVE_SYS_STAT_H', |  | 
| 91       'HAVE_SYS_TIME_H', |  | 
| 92       'HAVE_SYS_TYPES_H', |  | 
| 93       'HAVE_UINT16_T', |  | 
| 94       'HAVE_UNISTD_H', |  | 
| 95       'HAVE_U_INT16_T', |  | 
| 96       'HAVE___ATTRIBUTE__', |  | 
| 97       ('PACKAGE', '"open-vcdiff"'), |  | 
| 98       ('PACKAGE_BUGREPORT', '"opensource@google.com"'), |  | 
| 99       ('PACKAGE_NAME', '"open-vcdiff"'), |  | 
| 100       ('PACKAGE_STRING', '"open-vcdiff 0.1"'), |  | 
| 101       ('PACKAGE_TARNAME', '"open-vcdiff"'), |  | 
| 102       ('PACKAGE_VERSION', '"0.1"'), |  | 
| 103       ('VERSION', '"0.1"'), |  | 
| 104       'STDC_HEADERS', |  | 
| 105   ] |  | 
| 106 |  | 
| 107   if env.Bit('linux'): |  | 
| 108     defines.extend([ |  | 
| 109         'HAVE_MALLOC_H', |  | 
| 110         'HAVE_MEMALIGN', |  | 
| 111         'HAVE_POSIX_MEMALIGN', |  | 
| 112     ]) |  | 
| 113 |  | 
| 114   if env.Bit('mac'): |  | 
| 115     defines.extend([ |  | 
| 116         'HAVE_WORKING_KQUEUE', |  | 
| 117     ]) |  | 
| 118 |  | 
| 119   def AutoConfig(target, source, env): |  | 
| 120     """ |  | 
| 121     Action to generate a config.h file from an Autotools config.h.in file, |  | 
| 122     given the list of definitions in the DEFINES construction variable. |  | 
| 123 |  | 
| 124     Each entry in DEFINES is either a string, in which case it |  | 
| 125     will be enabled with a value of 1, or a tuple, in which case |  | 
| 126     the first element is the #define name and the second its value. |  | 
| 127 |  | 
| 128     Any leftover #undef lines get commented out. |  | 
| 129     """ |  | 
| 130     contents = open(str(source[0]), 'r').read() |  | 
| 131 |  | 
| 132     for d in env['DEFINES']: |  | 
| 133         if isinstance(d, tuple): |  | 
| 134             define, value = d |  | 
| 135         else: |  | 
| 136             define = d |  | 
| 137             value = 1 |  | 
| 138         undef = '^#undef %s$' % re.escape(define) |  | 
| 139         definition = '#define %s %s' % (define, value) |  | 
| 140         contents = re.sub(undef, definition, contents) |  | 
| 141 |  | 
| 142     undef_re = re.compile(r'^(#undef .*)$', re.M) |  | 
| 143     contents = undef_re.sub(r'/* \1 */', contents) |  | 
| 144 |  | 
| 145     header = '/* src/config.h.  Generated by SCons.  */\n' |  | 
| 146     open(str(target[0]), 'w').write(header + contents) |  | 
| 147 |  | 
| 148   # varlist['DEFINES'] below makes the target config.h file depend |  | 
| 149   # on the list of definitions in the passed-in $DEFINES variable. |  | 
| 150   # |  | 
| 151   # Comment this out so we use the checked-in config.h in the |  | 
| 152   # linux subdirectory, but leave it here in case we need |  | 
| 153   # to ressurect this. |  | 
| 154   #env.Command('$OPEN_VCDIFF_DIR/src/config.h', |  | 
| 155   #            '$OPEN_VCDIFF_DIR/src/config.h.in', |  | 
| 156   #            Action(AutoConfig, varlist=['DEFINES']), |  | 
| 157   #            DEFINES=defines) |  | 
| 158 |  | 
| 159 |  | 
| 160 p = env.ChromeMSVSProject('sdch.vcproj', |  | 
| 161                           dest='$CHROME_SRC_DIR/sdch/sdch.vcproj', |  | 
| 162                           guid='{F54ABC59-5C00-414A-A9BA-BAF26D1699F0}', |  | 
| 163                           keyword='Win32Proj', |  | 
| 164                           # TODO(sgk):  when we can intuit the hierarchy |  | 
| 165                           # from the built targets. |  | 
| 166                           #buildtargets=TODO, |  | 
| 167                           files=input_files, |  | 
| 168                           relative_path_prefix='./', |  | 
| 169                           tools=[ |  | 
| 170                               'VCPreBuildEventTool', |  | 
| 171                               'VCCustomBuildTool', |  | 
| 172                               'VCXMLDataGeneratorTool', |  | 
| 173                               'VCWebServiceProxyGeneratorTool', |  | 
| 174                               'VCMIDLTool', |  | 
| 175                               MSVSTool('VCCLCompilerTool', |  | 
| 176                                        AdditionalIncludeDirectories=[ |  | 
| 177                                            './open-vcdiff/vsprojects', |  | 
| 178                                            '', |  | 
| 179                                        ], |  | 
| 180                                        DefaultCharIsUnsigned="true"), |  | 
| 181                               'VCManagedResourceCompilerTool', |  | 
| 182                               'VCResourceCompilerTool', |  | 
| 183                               'VCPreLinkEventTool', |  | 
| 184                               'VCLibrarianTool', |  | 
| 185                               'VCALinkTool', |  | 
| 186                               'VCXDCMakeTool', |  | 
| 187                               'VCBscMakeTool', |  | 
| 188                               'VCFxCopTool', |  | 
| 189                               'VCPostBuildEventTool', |  | 
| 190                           ], |  | 
| 191                           ConfigurationType='4') |  | 
| 192 |  | 
| 193 |  | 
| 194 p.AddConfig('Debug|Win32', |  | 
| 195             InheritedPropertySheets=[ |  | 
| 196                 '$(SolutionDir)../build/debug.vsprops', |  | 
| 197                 '$(SolutionDir)../sdch/using_sdch.vsprops', |  | 
| 198             ]) |  | 
| 199 |  | 
| 200 p.AddConfig('Release|Win32', |  | 
| 201             InheritedPropertySheets=[ |  | 
| 202                 '$(SolutionDir)../build/release.vsprops', |  | 
| 203                 '$(SolutionDir)../sdch/using_sdch.vsprops', |  | 
| 204             ]) |  | 
| OLD | NEW | 
|---|