summaryrefslogtreecommitdiffstats
path: root/odk/CustomTarget_allheaders.mk
diff options
context:
space:
mode:
Diffstat (limited to 'odk/CustomTarget_allheaders.mk')
-rw-r--r--odk/CustomTarget_allheaders.mk55
1 files changed, 55 insertions, 0 deletions
diff --git a/odk/CustomTarget_allheaders.mk b/odk/CustomTarget_allheaders.mk
new file mode 100644
index 000000000..ea632209e
--- /dev/null
+++ b/odk/CustomTarget_allheaders.mk
@@ -0,0 +1,55 @@
+# -*- 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_CustomTarget_CustomTarget,odk/allheaders))
+
+odk_allheaders_DIR := $(call gb_CustomTarget_get_workdir,odk/allheaders)
+
+$(call gb_CustomTarget_get_target,odk/allheaders) : \
+ $(odk_allheaders_DIR)/allheaders.hxx
+
+define odk_genincludesheader
+// Generated list of sal includes
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
+endef
+
+define odk_geninclude
+$(if $(2),#ifdef _WIN32)
+#include <$(subst $(INSTDIR)/$(SDKDIRNAME)/include/,,$(1))>
+$(if $(2),#endif)
+
+endef
+
+$(odk_allheaders_DIR)/allheaders.hxx : \
+ $(call gb_Package_get_target,odk_headers) \
+ $(call gb_Package_get_target,odk_headers_generated) \
+ | $(odk_allheaders_DIR)/.dir
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),ECH)
+ifeq ($(HAVE_GNUMAKE_FILE_FUNC),)
+ printf '// Generated list of sal includes\n' > $@ && \
+ printf '#ifdef _WIN32\n' >> $@ && \
+ printf '#include <windows.h>\n' >> $@ && \
+ printf '#endif\n' >> $@ \
+ $(foreach file,$(shell cat $^),\
+ $(if $(findstring /win32/,$(file)),&& printf '#ifdef _WIN32\n' >> $@) \
+ && printf '#include <%s>\n' $(subst $(INSTDIR)/$(SDKDIRNAME)/include/,,$(file)) >> $@ \
+ $(if $(findstring /win32/,$(file)),&& printf '#endif\n' >> $@) \
+ )
+else
+ $(file >$@,\
+ $(call odk_genincludesheader) \
+ $(foreach file,$(shell cat $^),$(call odk_geninclude,$(file),$(findstring /win32/,$(file)))))
+endif
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),ECH)
+
+# vim: set noet sw=4 ts=4: