diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-09-21 01:35:41 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-09-22 11:08:32 +0200 |
commit | 814ec7640fc2a529343e358ab4fd3b9a59d645ca (patch) | |
tree | 0462df8c1f5dc24f4d65be6b01c1f297d570a8f0 /cli_ure | |
parent | 4ac934946e1e02fc000c56f23575c766c7a912d1 (diff) |
cli_ure: copy cli_basetypes to INSTDIR/sdk/bin
The library is already in the URE/bin directory, but that is not
sufficient to be able to run sdk/bin/climaker.exe.
There are apparently 4 ways for a .net/CLR executable to locate
shared libraries:
1) in the same directory as the executable
2) in some mysterious "GAC" thing in C:/Windows
(which is presumably how it works if you actually install LO)
3) via an application configuration file entry "probing",
which only works when it's in a sub-directory of the
one the executable is in
4) via a DEVPATH variable, but that only works with a
special configuration entry in a system "machine config" file
of the .net framework
Specifically PATH is apparently ignored. Since building on Windows is
enough of a PITA already and we don't want developers to have to edit
another config file, put another copy of the library into sdk/bin.
http://tutorials.csharp-online.net/.NET_CLR_Components%E2%80%94Resolving_Names_to_Locations
http://tutorials.csharp-online.net/.NET_CLR_Components%E2%80%94CLR_Loader
Change-Id: I511957ad9a9a918ed0c316126304a1980fb2d289
Diffstat (limited to 'cli_ure')
-rw-r--r-- | cli_ure/Executable_climaker.mk | 4 | ||||
-rw-r--r-- | cli_ure/Module_cli_ure.mk | 1 | ||||
-rw-r--r-- | cli_ure/Package_cli_basetypes_copy.mk | 20 |
3 files changed, 25 insertions, 0 deletions
diff --git a/cli_ure/Executable_climaker.mk b/cli_ure/Executable_climaker.mk index db7e42ccdc7e..f1aaf62914ae 100644 --- a/cli_ure/Executable_climaker.mk +++ b/cli_ure/Executable_climaker.mk @@ -9,6 +9,10 @@ $(eval $(call gb_Executable_Executable,climaker)) +$(eval $(call gb_Executable_use_package,climaker,\ + cli_basetypes_copy \ +)) + $(eval $(call gb_Executable_add_cxxflags,climaker,\ -AI $(gb_Helper_OUTDIRLIBDIR) \ -clr \ diff --git a/cli_ure/Module_cli_ure.mk b/cli_ure/Module_cli_ure.mk index 64f9bb916bd2..0c2e9dafb914 100644 --- a/cli_ure/Module_cli_ure.mk +++ b/cli_ure/Module_cli_ure.mk @@ -24,6 +24,7 @@ $(eval $(call gb_Module_add_targets,cli_ure,\ Library_cli_cppuhelper_native \ Library_cli_uno \ Package_config \ + Package_cli_basetypes_copy \ )) endif diff --git a/cli_ure/Package_cli_basetypes_copy.mk b/cli_ure/Package_cli_basetypes_copy.mk new file mode 100644 index 000000000000..fdb76bef8c06 --- /dev/null +++ b/cli_ure/Package_cli_basetypes_copy.mk @@ -0,0 +1,20 @@ + +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Package_Package,cli_basetypes_copy,$(WORKDIR))) + +$(eval $(call gb_Package_set_outdir,cli_basetypes_copy,$(INSTDIR))) + +# duplicate copy to work around CLR DLL finding brain damage +$(eval $(call gb_Package_add_files,cli_basetypes_copy,$(gb_Package_SDKDIRNAME)/bin,\ + CliLibraryTarget/cli_basetypes.dll \ +)) + +# vim: set noet sw=4 ts=4: |