[pangomm/use-dllexport: 6/7] Visual Studio builds: Do not use gendef.exe
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pangomm/use-dllexport: 6/7] Visual Studio builds: Do not use gendef.exe
- Date: Wed, 11 Mar 2020 10:43:05 +0000 (UTC)
commit d89d89114db475461447df91d1352211a9506d70
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Wed Mar 11 18:31:46 2020 +0800
Visual Studio builds: Do not use gendef.exe
Instead, use compiler directives to build the pangomm DLLs.
MSVC_NMake/build-rules-msvc.mak | 13 ++---------
MSVC_NMake/config-msvc.mak | 1 -
MSVC_NMake/generate-msvc.mak | 5 ----
pango/pangomm/meson.build | 52 +++++++++++------------------------------
4 files changed, 15 insertions(+), 56 deletions(-)
---
diff --git a/MSVC_NMake/build-rules-msvc.mak b/MSVC_NMake/build-rules-msvc.mak
index c4d488e..9700e7b 100644
--- a/MSVC_NMake/build-rules-msvc.mak
+++ b/MSVC_NMake/build-rules-msvc.mak
@@ -47,8 +47,8 @@ $(PANGOMM_LIB): $(PANGOMM_DLL)
# $(dependent_objects)
# <<
# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
-$(PANGOMM_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\pangomm.def $(pangomm_OBJS)
- link /DLL $(LDFLAGS_NOLTCG) $(PANGOMM_DEP_LIBS) /implib:$(PANGOMM_LIB)
/def:vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\pangomm.def -out:$@ @<<
+$(PANGOMM_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\pangomm $(pangomm_OBJS)
+ link /DLL $(LDFLAGS_NOLTCG) $(PANGOMM_DEP_LIBS) /implib:$(PANGOMM_LIB) -out:$@ @<<
$(pangomm_OBJS)
<<
@@ -62,11 +62,6 @@ $(pangomm_OBJS)
# <<
# @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
-# For the gendef tool
-{.\gendef\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\}.exe:
- @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\gendef\ $(MAKE) -f Makefile.vc CFG=$(CFG)
vs$(VSVER)\$(CFG)\$(PLAT)\gendef
- $(CXX) $(PANGOMM_BASE_CFLAGS) $(CFLAGS) /Fo$(@D)\gendef\ /Fd$(@D)\gendef\ $< /link $(LDFLAGS) /out:$@
-
clean:
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exe
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.dll
@@ -74,17 +69,13 @@ clean:
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.ilk
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exp
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.lib
- @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.def
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.res
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.pdb
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.obj
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\private\*.h
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.h
@-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.cc
- @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\gendef\*.pdb
- @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\gendef\*.obj
@-rd vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\private
@-rd vs$(VSVER)\$(CFG)\$(PLAT)\pangomm
- @-rd vs$(VSVER)\$(CFG)\$(PLAT)\gendef
.SUFFIXES: .cc .h .ccg .hg .obj
diff --git a/MSVC_NMake/config-msvc.mak b/MSVC_NMake/config-msvc.mak
index fca2f4a..f9203be 100644
--- a/MSVC_NMake/config-msvc.mak
+++ b/MSVC_NMake/config-msvc.mak
@@ -75,7 +75,6 @@ PANGOMM_LIBNAME = pangomm-vc$(VSVER)0$(DEBUG_SUFFIX)-$(PANGOMM_MAJOR_VERSION)_$(
PANGOMM_DLL = vs$(VSVER)\$(CFG)\$(PLAT)\$(PANGOMM_LIBNAME).dll
PANGOMM_LIB = vs$(VSVER)\$(CFG)\$(PLAT)\$(PANGOMM_LIBNAME).lib
-GENDEF = vs$(VSVER)\$(CFG)\$(PLAT)\gendef.exe
GOBJECT_LIBS = gobject-$(GLIB_API_VERSION).lib glib-$(GLIB_API_VERSION).lib
CAIRO_LIB = cairo.lib
PANGO_LIBS = pangocairo-$(PANGO_API_VERSION).lib pango-$(PANGO_API_VERSION).lib $(GOBJECT_LIBS) $(CAIRO_LIB)
diff --git a/MSVC_NMake/generate-msvc.mak b/MSVC_NMake/generate-msvc.mak
index 53991a6..9ed646b 100644
--- a/MSVC_NMake/generate-msvc.mak
+++ b/MSVC_NMake/generate-msvc.mak
@@ -4,15 +4,10 @@
# one is maintaining the NMake build files.
# Create the build directories
-vs$(VSVER)\$(CFG)\$(PLAT)\gendef \
vs$(VSVER)\$(CFG)\$(PLAT)\pangomm \
vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\private:
@-md $@
-# Generate .def files
-vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\pangomm.def: $(GENDEF) vs$(VSVER)\$(CFG)\$(PLAT)\pangomm $(pangomm_OBJS)
- vs$(VSVER)\$(CFG)\$(PLAT)\gendef.exe $@ $(PANGOMM_LIBNAME) vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\*.obj
-
# Generate wrap_init.cc files
vs$(VSVER)\$(CFG)\$(PLAT)\pangomm\wrap_init.cc: $(pangomm_real_hg)
@if not exist ..\pango\pangomm\wrap_init.cc $(PERL) -- "$(GMMPROC_DIR)/generate_wrap_init.pl"
--namespace=Pango --parent_dir=pangomm $(pangomm_real_hg:\=/)>$@
diff --git a/pango/pangomm/meson.build b/pango/pangomm/meson.build
index 4d86c88..db60558 100644
--- a/pango/pangomm/meson.build
+++ b/pango/pangomm/meson.build
@@ -67,6 +67,15 @@ src_untracked_pangomm = project_source_root / untracked_pangomm
pangomm_cpp_args = [ '-DPANGOMM_BUILD=1' ]
+extra_pangomm_objects = []
+
+# Build the .rc file for Windows builds and link to it
+if host_machine.system() == 'windows'
+ windows = import('windows')
+ pangomm_res = windows.compile_resources(pangomm_rc)
+ extra_pangomm_objects += pangomm_res
+endif
+
if maintainer_mode
# Maintainer mode. Generate .h and .cc files from .hg and .ccg files in ../src.
@@ -123,7 +132,7 @@ if maintainer_mode
endforeach
extra_include_dirs = ['..']
- pangomm_library = library(pangomm_pcname,
+ pangomm_library = library(pangomm_pcname, extra_pangomm_objects,
built_cc_file_targets, built_h_file_targets, extra_cc_files,
version: pangomm_libversion,
include_directories: extra_include_dirs,
@@ -166,48 +175,13 @@ else # not maintainer_mode
extra_include_dirs = [ '..', '..' / '..' / 'untracked' / 'pango' ]
- # We need this so that we can run gendef.exe to get the .def file
- # needed for obtaining the .lib file for the pangomm DLL
- pango_int_lib = static_library('pangomm-int',
+ pangomm_library = library(pangomm_pcname, extra_pangomm_objects,
built_cc_files, extra_cc_files,
+ version: pangomm_libversion,
include_directories: extra_include_dirs,
cpp_args: pangomm_cpp_args,
dependencies: pangomm_build_dep,
- install: false,)
-
- pangomm_def = []
- pangomm_extra_link_args = []
- extra_pangomm_objects = []
-
- if is_msvc
- pangomm_def = custom_target('pangomm.def',
- output: 'pangomm.def',
- depends: pango_int_lib,
- command: [ gendef,
- '@OUTPUT@',
- '@0@-@1@.dll'.format(pangomm_pcname,
- libtool_soversion[0] - libtool_soversion[2]),
- pango_int_lib.full_path(),
- ],
- install: false,
- )
- pangomm_extra_link_args = ['/def:@0@'.format(pangomm_def.full_path())]
- endif
-
- # Build the .rc file for Windows builds and link to it
- if host_machine.system() == 'windows'
- windows = import('windows')
- pangomm_res = windows.compile_resources(pangomm_rc)
- extra_pangomm_objects += pangomm_res
- endif
-
- pangomm_library = library(pangomm_pcname, extra_pangomm_objects,
- objects: pango_int_lib.extract_all_objects(),
- version: pangomm_libversion,
- dependencies: pangomm_build_dep,
- link_depends: pangomm_def,
- link_args: pangomm_extra_link_args,
- install: true,
+ install: true
)
built_h_cc_dir = src_untracked_pangomm
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]