summaryrefslogtreecommitdiff
path: root/cli_ure
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-21 01:35:41 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:32 +0200
commit814ec7640fc2a529343e358ab4fd3b9a59d645ca (patch)
tree0462df8c1f5dc24f4d65be6b01c1f297d570a8f0 /cli_ure
parent4ac934946e1e02fc000c56f23575c766c7a912d1 (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.mk4
-rw-r--r--cli_ure/Module_cli_ure.mk1
-rw-r--r--cli_ure/Package_cli_basetypes_copy.mk20
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: