D.J. Heap wrote:
> On 3/23/07, Joe Swatosh <joe.swatosh@gmail.com> wrote:
>> Hi,
>>
>> I'm not really sure why some libs are copied here and some are not.
>> In the interests of making my life easier, this patch adds sqlite and
>> bdb to the libraries
>> that are copied before the tests are run.
>>
>
>
> I've never quite understood that either -- it kinds of seems to be
> that we only copy files that we directly built, I think. The other
> dll's are considered 'already installed and available somewhere in the
> PATH' components, maybe?
>
> I don't have any objections to doing this, but I'd rather see the
> directory structures kept as consistent as possible (so sqlite3.dll
> would be in a bin directory under the --with-sqlite path like bdb).
>

Hi Joe, DJ,

Can you test the following patch? It's based on Joe's idea, but it doesn't
hardcode the BDB version number. (I had to jump through quite a few hoops to
get this to work). This patch expects to find the sqlite dll in the 'bin'
subdirectory of sqlite_path, so the buildbot would have to be tweaked.

[[[
Copy all library dependency DLLs to the root of the build tree (currently we
only copy APR & friends, and require all others to be somewhere in PATH).

To accomplish this, move some of the path detection and initialization
logic from WinGeneratorBase to GeneratorBase, which we already use in
win-tests.py for other reasons.

* build/generator/gen_win.py
(GeneratorBase.parse_options, GeneratorBase._find_bdb): Moved from
WinGeneratorBase, minus the parts that print to stderr.
(GeneratorBase.__init__): Call parse_options() and _find_bdb().
(WinGeneratorBase.__init__): Move the parent class initialization to the
start of the function. Check some of the values that we need and print
warnings or errors if they are not found.

* win-tests.py
Read the options from 'gen-make.opts', use them when creating gen_obj (an
instance of GeneratorBase).
(_locate_libs): Remove the get() function. Use gen_obj's attributes to
determine which DLLs should be copied and from where.