[gtkmm/gtkmm-3-24] NMake Makefiles: Add rules to generate versioned items



commit 504d02324ba183e7c92b4ba0e5830f047aa92537
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Sun Apr 5 11:53:46 2020 +0800

    NMake Makefiles: Add rules to generate versioned items
    
    This adds rules to generate [gdk|gtk]mm/[gdk|gtk]mm.rc and
    [gdk|gtk]mm/[gdk|gtk]mmconfig.h from their .in counterparts by reading
    from configure.ac.

 MSVC_NMake/Makefile.vc       |  4 +++
 MSVC_NMake/generate-msvc.mak | 59 ++++++++++++++++++++++++++++++++++++++++++++
 MSVC_NMake/pkg-ver.mak       |  3 +++
 3 files changed, 66 insertions(+)
---
diff --git a/MSVC_NMake/Makefile.vc b/MSVC_NMake/Makefile.vc
index 6f6e2bda..1d1d660b 100644
--- a/MSVC_NMake/Makefile.vc
+++ b/MSVC_NMake/Makefile.vc
@@ -29,6 +29,10 @@ VALID_MSC = TRUE
 
 !if "$(VALID_MSC)" == "TRUE"
 
+!ifdef GENERATE_VERSIONED_FILES
+!include pkg-ver.mak
+!endif
+
 # Include the Makefile portion to convert the source and header lists
 # into the lists we need for compilation and introspection
 !include create-lists-msvc.mak
diff --git a/MSVC_NMake/generate-msvc.mak b/MSVC_NMake/generate-msvc.mak
index ecdb8ba4..2343baba 100644
--- a/MSVC_NMake/generate-msvc.mak
+++ b/MSVC_NMake/generate-msvc.mak
@@ -37,3 +37,62 @@ $(gtkmm_demo_example_sources)        \
 $(gtkmm_demo_resources)        \
 ..\demos\gtk-demo\demo.gresource.xml
        $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=..\demos\gtk-demo --generate-source 
..\demos\gtk-demo\demo.gresource.xml
+
+prep-git-build: pkg-ver.mak
+
+gdkmm\gdkmm.rc: pkg-ver.mak
+       @echo Generating $@...
+       @copy $@.in $@
+       @$(PERL) -pi.bak -e "s/\@GDKMM_MAJOR_VERSION\@/$(PKG_MAJOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GDKMM_MINOR_VERSION\@/$(PKG_MINOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GDKMM_MICRO_VERSION\@/$(PKG_MICRO_VERSION)/g" $@
+       @$(PERL) -pi.bak -e 
"s/\@PACKAGE_VERSION\@/$(PKG_MAJOR_VERSION).$(PKG_MINOR_VERSION).$(PKG_MICRO_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GDKMM_MODULE_NAME\@/gdkmm-$(GTKMM_MAJOR_VERSION).$(GTKMM_MINOR_VERSION)/g" $@
+       @del $@.bak
+
+gtkmm\gtkmm.rc: pkg-ver.mak
+       @echo Generating $@...
+       @copy $@.in $@
+       @$(PERL) -pi.bak -e "s/\@GTKMM_MAJOR_VERSION\@/$(PKG_MAJOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GTKMM_MINOR_VERSION\@/$(PKG_MINOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GTKMM_MICRO_VERSION\@/$(PKG_MICRO_VERSION)/g" $@
+       @$(PERL) -pi.bak -e 
"s/\@PACKAGE_VERSION\@/$(PKG_MAJOR_VERSION).$(PKG_MINOR_VERSION).$(PKG_MICRO_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\@GTKMM_MODULE_NAME\@/gtkmm-$(GTKMM_MAJOR_VERSION).$(GTKMM_MINOR_VERSION)/g" $@
+       @del $@.bak
+
+# You may change GTKMM_DISABLE_DEPRECATED and GTKMM_STATIC_LIB if you know what you are doing
+gdkmm\gdkmmconfig.h: pkg-ver.mak ..\gdk\gdkmmconfig.h.in
+       @echo Generating $@...
+       @if not exist $(@D) mkdir $(@D)
+       @copy ..\gdk\$(@F).in $@
+       @$(PERL) -pi.bak -e "s/\#undef GDKMM_DISABLE_DEPRECATED/\/\* \#undef GDKMM_DISABLE_DEPRECATED \*\//g" 
$@
+       @$(PERL) -pi.bak -e "s/\#undef GDKMM_STATIC_LIB/\/\* \#undef GDKMM_STATIC_LIB \*\//g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GDKMM_MAJOR_VERSION/\#define GDKMM_MAJOR_VERSION 
$(PKG_MAJOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GDKMM_MINOR_VERSION/\#define GDKMM_MINOR_VERSION 
$(PKG_MINOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GDKMM_MICRO_VERSION/\#define GDKMM_MICRO_VERSION 
$(PKG_MICRO_VERSION)/g" $@
+       @del $@.bak
+
+gtkmm\gtkmmconfig.h: pkg-ver.mak ..\gtk\gtkmmconfig.h.in
+       @echo Generating $@...
+       @copy ..\gtk\$(@F).in $@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_ATKMM_ENABLED/\#define GTKMM_ATKMM_ENABLED 1/g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_DISABLE_DEPRECATED/\/\* \#undef GTKMM_DISABLE_DEPRECATED \*\//g" 
$@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_STATIC_LIB/\/\* \#undef GTKMM_STATIC_LIB \*\//g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_MAJOR_VERSION/\#define GTKMM_MAJOR_VERSION 
$(PKG_MAJOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_MINOR_VERSION/\#define GTKMM_MINOR_VERSION 
$(PKG_MINOR_VERSION)/g" $@
+       @$(PERL) -pi.bak -e "s/\#undef GTKMM_MICRO_VERSION/\#define GTKMM_MICRO_VERSION 
$(PKG_MICRO_VERSION)/g" $@
+       @del $@.bak
+
+pkg-ver.mak: ..\configure.ac
+       @echo Generating version info Makefile Snippet...
+       @$(PERL) -00 -ne "print if /AC_INIT\(/" $** |   \
+       $(PERL) -pe "tr/, /\n/s" |      \
+       $(PERL) -ne "print if 2 .. 2" | \
+       $(PERL) -ne "print /\[(.*)\]/" > ver.txt
+       @echo @echo off>pkg-ver.bat
+       @echo.>>pkg-ver.bat
+       @echo set /p glibmm_ver=^<ver.txt>>pkg-ver.bat
+       @echo for /f "tokens=1,2,3 delims=." %%%%a IN ("%glibmm_ver%") do (echo PKG_MAJOR_VERSION=%%%%a^& 
echo PKG_MINOR_VERSION=%%%%b^& echo PKG_MICRO_VERSION=%%%%c)^>$@>>pkg-ver.bat
+       @pkg-ver.bat
+       @del ver.txt pkg-ver.bat
+       $(MAKE) /f Makefile.vc CFG=$(CFG) GENERATE_VERSIONED_FILES=1 gdkmm\gdkmm.rc gdkmm\gdkmmconfig.h 
gtkmm\gtkmm.rc gtkmm\gtkmmconfig.h
diff --git a/MSVC_NMake/pkg-ver.mak b/MSVC_NMake/pkg-ver.mak
new file mode 100644
index 00000000..0ca2ef50
--- /dev/null
+++ b/MSVC_NMake/pkg-ver.mak
@@ -0,0 +1,3 @@
+PKG_MAJOR_VERSION=3
+PKG_MINOR_VERSION=24
+PKG_MICRO_VERSION=2


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]