[gtkmm/use-dllexport-3-24: 6/6] NMake Makefiles: Export symbols without gendef if possible
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm/use-dllexport-3-24: 6/6] NMake Makefiles: Export symbols without gendef if possible
- Date: Sat, 11 Apr 2020 15:27:17 +0000 (UTC)
commit aa692fbef7c274f1412163bef9b3da5a4d309045
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Sat Apr 11 23:23:08 2020 +0800
NMake Makefiles: Export symbols without gendef if possible
We check to see whether we have a new-enough gmmproc that is capable of
generating the headers from the .hg templates with function decorations
at places where they need to be. If it is, we skip building gendef and
use __declspec(dllexport) to export the needed symbols.
Otherwise, we continue to use gendef.exe to export symbols, as we did
before.
MSVC_NMake/build-rules-msvc.mak | 8 ++++----
MSVC_NMake/create-lists-msvc.mak | 18 ++++++++++++++++++
2 files changed, 22 insertions(+), 4 deletions(-)
---
diff --git a/MSVC_NMake/build-rules-msvc.mak b/MSVC_NMake/build-rules-msvc.mak
index 9b2f4645..9425706e 100644
--- a/MSVC_NMake/build-rules-msvc.mak
+++ b/MSVC_NMake/build-rules-msvc.mak
@@ -72,14 +72,14 @@ $(GTKMM_LIB): $(GTKMM_DLL)
# $(dependent_objects)
# <<
# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
-$(GDKMM_DLL): vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm\gdkmm.def $(gdkmm_OBJS)
- link /DLL $(LDFLAGS_NOLTCG) $(GDKMM_DEP_LIBS) /implib:$(GDKMM_LIB)
/def:vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm\gdkmm.def -out:$@ @<<
+$(GDKMM_DLL): $(GDKMM_INT_TARGET) $(gdkmm_OBJS)
+ link /DLL $(LDFLAGS_NOLTCG) $(GDKMM_DEP_LIBS) /implib:$(GDKMM_LIB) $(GDKMM_DEF_LDFLAG) -out:$@ @<<
$(gdkmm_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
-$(GTKMM_DLL): $(GDKMM_LIB) vs$(PDBVER)\$(CFG)\$(PLAT)\gtkmm\gtkmm.def $(gtkmm_OBJS)
- link /DLL $(LDFLAGS_NOLTCG) $(GDKMM_LIB) $(GTKMM_DEP_LIBS) /implib:$(GTKMM_LIB)
/def:vs$(PDBVER)\$(CFG)\$(PLAT)\gtkmm\gtkmm.def -out:$@ @<<
+$(GTKMM_DLL): $(GDKMM_LIB) $(GTKMM_INT_TARGET) $(gtkmm_OBJS)
+ link /DLL $(LDFLAGS_NOLTCG) $(GDKMM_LIB) $(GTKMM_DEP_LIBS) /implib:$(GTKMM_LIB) $(GTKMM_DEF_LDFLAG)
-out:$@ @<<
$(gtkmm_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
diff --git a/MSVC_NMake/create-lists-msvc.mak b/MSVC_NMake/create-lists-msvc.mak
index a1b08c52..8735a653 100644
--- a/MSVC_NMake/create-lists-msvc.mak
+++ b/MSVC_NMake/create-lists-msvc.mak
@@ -141,7 +141,25 @@ gdkmm_generated_private_headers = $(files_hg:.hg=_p.h)
!if [call create-lists.bat footer gtkmm.mak]
!endif
+!if [for %f in (gdkmm\applaunchcontext.h) do @if not exist ..\gdk\%f if not exist if not exist
vs$(PDBVER)\$(CFG)\$(PLAT)\%f (md vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm\private) & ($(PERL) --
$(GMMPROC_DIR)/gmmproc -I ../tools/m4 -I $(GMMPROC_PANGO_DIR) -I $(GMMPROC_ATK_DIR) --defs ../gdk/src
applaunchcontext ../gdk/src vs$(PDBVER)/$(CFG)/$(PLAT)/gdkmm)]
+!endif
+
+!if [for %d in (vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm ..\gdk\gdkmm) do @if exist %d\applaunchcontext.h call
get-gmmproc-ver %d\applaunchcontext.h>>gtkmm.mak]
+!endif
+
!include gtkmm.mak
!if [del /f /q gtkmm.mak]
!endif
+
+!if "$(GMMPROC_VER)" >= "2.64.3"
+GDKMM_INT_TARGET = vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm
+GTKMM_INT_TARGET = vs$(PDBVER)\$(CFG)\$(PLAT)\gtkmm
+GDKMM_DEF_LDFLAG =
+!else
+GDKMM_INT_TARGET = vs$(PDBVER)\$(CFG)\$(PLAT)\gdkmm\gdkmm.def
+GDKMM_DEF_LDFLAG = /def:$(GDKMM_INT_TARGET)
+GDKMM_BASE_CFLAGS = $(GDKMM_BASE_CFLAGS) /DGDKMM_USE_GENDEF
+GTKMM_DEF_LDFLAG = /def:$(GDKMM_INT_TARGET:gdk=gtk)
+GTKMM_BASE_CFLAGS = $(GDKMM_BASE_CFLAGS) /DGTKMM_USE_GENDEF
+!endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]