gtk3/win32/bootstrap-msvc.mak
Chun-wei Fan 1b22c554f5 win32: Add NMake Makefile to bootstrap projects
This adds a NMake Makefile to generate the needed items that are normally
generated during `./configure`, as well as to generate the full Visual Studio
projects and property sheets, so that one can use the Visual Studio projects
to build GTK directly from a GIT checkout.  A 'clean' target is also provided
to remove these generated artifacts.  This also generates the headers that are
needed to build broadwayd, since they are currently dist'ed with the tarballs
but are not in the GIT repo.

This will not be dist'ed, as this is primarily meant for GIT checkouts only.
2022-08-05 18:40:00 +08:00

60 lines
2.3 KiB
Makefile

# NMake Makefile portion for generating Visual Studio
# projects and the other related items from a GIT checkout.
# Items in here should not need to be edited unless
# one is maintaining the NMake build files.
!ifndef PYTHON
PYTHON=python
!endif
!ifndef PERL
PERL=perl
!endif
NMAKE_ARGS = PYTHON=$(PYTHON) PERL=$(PERL)
!ifdef USE_EGL
NMAKE_ARGS = $(NMAKE_ARGS) USE_EGL=$(USE_EGL)
!endif
!ifdef FONT_FEATURES_DEMO
NMAKE_ARGS = $(NMAKE_ARGS) FONT_FEATURES_DEMO=$(FONT_FEATURES_DEMO)
!endif
!ifdef FONT_FEATURES_USE_PANGOFT2
NMAKE_ARGS = $(NMAKE_ARGS) FONT_FEATURES_USE_PANGOFT2=$(FONT_FEATURES_USE_PANGOFT2)
!endif
GENERATED_ITEMS = \
config-msvc.mak \
..\config.h.win32 \
vs9\gtk3-version-paths.vsprops \
vs1x-props\gtk3-version-paths.props
all: bootstrap-msvc-projects
config-msvc.mak: config-msvc.mak.in ..\configure.ac gen-version-items.py
..\config.h.win32: ..\config.h.win32.in ..\configure.ac gen-version-items.py
vs9\gtk3-version-paths.vsprops: vs9\gtk3-version-paths.vsprops.in ..\configure.ac gen-version-items.py
vs1x-props\gtk3-version-paths.props: vs1x-props\gtk3-version-paths.props.in ..\configure.ac gen-version-items.py
config-msvc.mak \
..\config.h.win32 \
vs9\gtk3-version-paths.vsprops \
vs1x-props\gtk3-version-paths.props:
@echo Generating $@...
@$(PYTHON) .\gen-version-items.py --source=$@.in -o=$@
bootstrap-msvc-projects: $(GENERATED_ITEMS)
$(MAKE) /f generate-msvc.mak $(NMAKE_ARGS) generate-broadway-items regenerate-all-msvc-projs
clean:
@-for %%v in (11 12 14 15 16 17) do @for %%x in (sln vcxproj vcxproj.filters) do @del vs%%v\*.%%x
@for %%x in (vcxproj vcxproj.filters) do @for %%f in (vs10\*.%%x) do @if exist %%fin del %%f
@for %%x in (vcxproj vcxproj.filters) do @for %%f in (vs10\*.%%x) do @if exist %%fin del %%f
@for %%x in (vcproj) do @for %%f in (vs9\*.%%x) do @if exist %%fin del %%f
@-del ..\gdk\broadway\broadwayjs.h ..\gdk\broadway\clienthtml.h
@-del ..\config.h.win32 config-msvc.mak
@-del vs9\gtk3-version-paths.vsprops
@-del vs1x-props\gtk3-version-paths.props
@-for %%v in (9 10 11 12 14 15 16 17) do for %%d in (Debug Release Debug_Broadway Release_Broadway .vs) do rmdir /s/q vs%%v\%%d
@-rmdir /s/q __pycache__
@-del ..\gdk-*-build
@-for %%v in (9 10 11 12 14 15 16 17) do for %%f in (vs%%v\*.user vs%%v\gtk+.vc.db vs%%v\gtk+.suo) do del /f %%f