Blame win32/adwaita-msvc.mak.in

Packit 9c2278
# NMake Makefile to generate the
Packit 9c2278
# complete index.theme file and to
Packit 9c2278
# install the icons
Packit 9c2278
Packit 9c2278
!include detectenv-msvc.mak
Packit 9c2278
Packit 9c2278
!IF "$(SRCROOTDIR)" == ""
Packit 9c2278
SRCROOTDIR=..
Packit 9c2278
!ENDIF
Packit 9c2278
Packit 9c2278
# Python.exe either needs to be in your PATH or you need to pass
Packit 9c2278
# in PYTHON=<full-path-to-your-Python-executable> for this to work.
Packit 9c2278
# Either Python 2.7 or 3.x can be used
Packit 9c2278
Packit 9c2278
!IF "$(PYTHON)" == ""
Packit 9c2278
PYTHON=python
Packit 9c2278
!ENDIF
Packit 9c2278
Packit 9c2278
# Prefix of your installation.  Pass in PREFIX=<your-installation-prefix>
Packit 9c2278
# if needed.  gtk-update-icon-cache need to be found
Packit 9c2278
# in $(PREFIX)\bin
Packit 9c2278
!IF "$(PREFIX)" == ""
Packit 9c2278
PREFIX=$(SRCROOTDIR)\..\vs$(VSVER)\$(PLAT)
Packit 9c2278
!ENDIF
Packit 9c2278
Packit 9c2278
ERRNUL  = 2>NUL
Packit 9c2278
_HASH=^#
Packit 9c2278
NULL=
Packit 9c2278
ICON_SUBDIR=share\icons\Adwaita
Packit 9c2278
GDK_PIXBUF_MOD_VERSION=2.10.0
Packit 9c2278
ADWAITA_VERSION=@VERSION@
Packit 9c2278
ADWAITA_PC_FILES=adwaita-icon-theme.pc
Packit 9c2278
Packit 9c2278
# Generate the NMake Makefile modules for the listing of subdirs for each icon size
Packit 9c2278
!if [@for /f %s in ('dir /b /on $(SRCROOTDIR)\Adwaita') do @if not "%s" == "cursors" (@echo SIZE_%s_dirs = \> %s.mak) & (@for /f %d in ('dir /b $(SRCROOTDIR)\Adwaita\%s') do @echo %s/%d \>> %s.mak) & @echo ^$(NULL) >> %s.mak]
Packit 9c2278
!endif
Packit 9c2278
Packit 9c2278
# We want underscores instead of dashes in the Makefile varnames
Packit 9c2278
!if [ren scalable-up-to-32.mak scalable-up-to-32.mak.tmp]
Packit 9c2278
!endif
Packit 9c2278
!if [$(PYTHON) replace.py --action=replace-str -i=scalable-up-to-32.mak.tmp -o=scalable-up-to-32.mak --instring=SIZE_scalable-up-to-32_dirs --outstring=SIZE_scalable_up_to_32_dirs]
Packit 9c2278
!endif
Packit 9c2278
!if [del scalable-up-to-32.mak.tmp]
Packit 9c2278
!endif
Packit 9c2278
Packit 9c2278
# Include the generated NMake Makefile modules to have the full listing of directories, and then get rid of them...
Packit 9c2278
!include 8x8.mak
Packit 9c2278
!include 16x16.mak
Packit 9c2278
!include 22x22.mak
Packit 9c2278
!include 24x24.mak
Packit 9c2278
!include 32x32.mak
Packit 9c2278
!include 48x48.mak
Packit 9c2278
!include 64x64.mak
Packit 9c2278
!include 96x96.mak
Packit 9c2278
!include 256x256.mak
Packit 9c2278
!include scalable.mak
Packit 9c2278
!include scalable-up-to-32.mak
Packit 9c2278
Packit 9c2278
!if [@for /f %s in ('dir /b /on $(SRCROOTDIR)\Adwaita') do @if not "%s" == "cursors" del %s.mak]
Packit 9c2278
!endif
Packit 9c2278
Packit 9c2278
FIXED_ICON_DIRS = \
Packit 9c2278
	$(SIZE_8x8_dirs)	\
Packit 9c2278
	$(SIZE_16x16_dirs)	\
Packit 9c2278
	$(SIZE_22x22_dirs)	\
Packit 9c2278
	$(SIZE_24x24_dirs)	\
Packit 9c2278
	$(SIZE_32x32_dirs)	\
Packit 9c2278
	$(SIZE_48x48_dirs)	\
Packit 9c2278
	$(SIZE_64x64_dirs)	\
Packit 9c2278
	$(SIZE_96x96_dirs)
Packit 9c2278
Packit 9c2278
CONTEXT_PYTHON_CMD = $(PYTHON) -c "print('Context=' + '%d'['%d'.rfind('/') + 1:].title())"
Packit 9c2278
SIZE_256 = 256
Packit 9c2278
SIZE_256_MIN = 56
Packit 9c2278
SIZE_SCALABLE = 16
Packit 9c2278
SIZE_SCALABLE_32_MIN = 16
Packit 9c2278
SIZE_SCALABLE_32_MAX = 32
Packit 9c2278
SIZE_SCALABLE_MIN = 8
Packit 9c2278
SIZE_SCALABLE_MAX = 512
Packit 9c2278
Packit 9c2278
all: index.theme
Packit 9c2278
Packit 9c2278
index.theme: index.theme.tmp
Packit 9c2278
#	From index.theme.tmp, append then to the file the info for each subdir
Packit 9c2278
#	under each icon size
Packit 9c2278
#
Packit 9c2278
#	The fixed-sized icons...
Packit 9c2278
	@for %d in ($(FIXED_ICON_DIRS))	do					\
Packit 9c2278
	@(echo [%d])>>$@.tmp &							\
Packit 9c2278
	@($(CONTEXT_PYTHON_CMD))>>$@.tmp &					\
Packit 9c2278
	@($(PYTHON) -c "print('Size=' + '%d'[:'%d'.find('x')])")>>$@.tmp &	\
Packit 9c2278
	@(echo Type=Fixed)>>$@.tmp &	\
Packit 9c2278
	@(echo.)>>$@.tmp
Packit 9c2278
Packit 9c2278
#	The 256x256 icons...
Packit 9c2278
	@for %d in ($(SIZE_256x256_dirs)) do		\
Packit 9c2278
	@(echo [%d]>>$@.tmp) &				\
Packit 9c2278
	@($(CONTEXT_PYTHON_CMD))>>$@.tmp &		\
Packit 9c2278
	@(echo Size=$(SIZE_256))>>$@.tmp &		\
Packit 9c2278
	@(echo MinSize=$(SIZE_256_MIN))>>$@.tmp &	\
Packit 9c2278
	@(echo MaxSize=$(SIZE_SCALABLE_MAX))>>$@.tmp &	\
Packit 9c2278
	@(echo Type=Scalable)>>$@.tmp &			\
Packit 9c2278
	@(echo.)>>$@.tmp
Packit 9c2278
Packit 9c2278
#	The scalable icons...
Packit 9c2278
	@for %d in ($(SIZE_scalable_dirs)) do		\
Packit 9c2278
	@(echo [%d]>>$@.tmp) &				\
Packit 9c2278
	@($(CONTEXT_PYTHON_CMD))>>$@.tmp &		\
Packit 9c2278
	@(echo Size=$(SIZE_SCALABLE))>>$@.tmp &		\
Packit 9c2278
	@(echo MinSize=$(SIZE_SCALABLE_MIN))>>$@.tmp &	\
Packit 9c2278
	@(echo MaxSize=$(SIZE_SCALABLE_MAX))>>$@.tmp &	\
Packit 9c2278
	@(echo Type=Scalable)>>$@.tmp &			\
Packit 9c2278
	@(echo.)>>$@.tmp
Packit 9c2278
Packit 9c2278
#	The scalable-up-to-32 icons...
Packit 9c2278
	@for %d in ($(SIZE_scalable_up_to_32_dirs)) do		\
Packit 9c2278
	@(echo [%d]>>$@.tmp) &					\
Packit 9c2278
	@($(CONTEXT_PYTHON_CMD))>>$@.tmp &			\
Packit 9c2278
	@(echo Size=$(SIZE_SCALABLE))>>$@.tmp &			\
Packit 9c2278
	@(echo MinSize=$(SIZE_SCALABLE_32_MIN))>>$@.tmp &	\
Packit 9c2278
	@(echo MaxSize=$(SIZE_SCALABLE_32_MAX))>>$@.tmp &	\
Packit 9c2278
	@(echo Type=Scalable)>>$@.tmp &				\
Packit 9c2278
	@(echo.)>>$@.tmp
Packit 9c2278
Packit 9c2278
	@$(PYTHON) replace.py -i=$@.tmp -o=$@.tmp1 --action=replace-str --instring=App --outstring=Application
Packit 9c2278
	@$(PYTHON) replace.py -i=$@.tmp1 -o=$@ --action=replace-str --instring=Mimetype --outstring=MimeType
Packit 9c2278
	@del $@.tmp1
Packit 9c2278
Packit 9c2278
index.theme.tmp: $(SRCROOTDIR)\index.theme.in dir_list.py
Packit 9c2278
#	First generate a temporary index.theme.tmp that has @THEME_DIRS@ replaced appropriately
Packit 9c2278
	@echo Generating index.theme...
Packit 9c2278
	@$(PYTHON) apply_dirs.py -i=$(SRCROOTDIR)\$(@B).in -o=$@
Packit 9c2278
Packit 9c2278
dir_list.py:
Packit 9c2278
#	Generate a Python list of subdirs under Adwaita/ for the icons
Packit 9c2278
	@echo icon_dirs = [>$@
Packit 9c2278
	@for %d in ($(FIXED_ICON_DIRS) $(SIZE_256x256_dirs) $(SIZE_scalable_dirs) $(SIZE_scalable_up_to_32_dirs)) do @echo '%d',>>$@
Packit 9c2278
	@echo ]>>$@
Packit 9c2278
Packit 9c2278
.SUFFIXES: .svg .png
Packit 9c2278
Packit 9c2278
$(ADWAITA_PC_FILES): ..\adwaita-icon-theme.pc.in
Packit 9c2278
	@echo Generating $@...
Packit 9c2278
	$(PYTHON) adwaitapc.py --prefix=$(PREFIX) --version=$(ADWAITA_VERSION)
Packit 9c2278
Packit 9c2278
# Copy the icon and cursor files, and convert the SVG symbolic icons if:
Packit 9c2278
# -The gtk-encode-symbolic-svg tool is found in $(PREFIX)\bin -AND-
Packit 9c2278
# -The SVG GDK-Pixbuf loader can be found in $(PREFIX)\lib\gdk-pixbuf-2.0\2.10.0\loaders
Packit 9c2278
install: index.theme $(ADWAITA_PC_FILES)
Packit 9c2278
	@-mkdir $(PREFIX)\$(ICON_SUBDIR)
Packit 9c2278
	copy index.theme $(PREFIX)\$(ICON_SUBDIR)
Packit 9c2278
	for /f %d in ('dir /b $(SRCROOTDIR)\Adwaita') do								\
Packit 9c2278
	@(echo Copying files for %d...) & 										\
Packit 9c2278
	@(mkdir $(PREFIX)\$(ICON_SUBDIR)\%d) & 										\
Packit 9c2278
	@(if not "%d" == "cursors"											\
Packit 9c2278
		(for /f %f in ('dir /b /on $(SRCROOTDIR)\Adwaita\%d') do						\
Packit 9c2278
		 (mkdir $(PREFIX)\$(ICON_SUBDIR)\%d\%f) &								\
Packit 9c2278
		 (copy /b $(SRCROOTDIR)\Adwaita\%d\%f\* $(PREFIX)\$(ICON_SUBDIR)\%d\%f))				\
Packit 9c2278
	  else (copy /b $(SRCROOTDIR)\Adwaita\%d\* $(PREFIX)\$(ICON_SUBDIR)\%d))
Packit 9c2278
	@if exist $(PREFIX)\bin\gtk-encode-symbolic-svg.exe								\
Packit 9c2278
	if exist $(PREFIX)\lib\gdk-pixbuf-2.0\$(GDK_PIXBUF_MOD_VERSION)\loaders\libpixbufloader-svg.dll			\
Packit 9c2278
	if exist $(PREFIX)\lib\gdk-pixbuf-2.0\$(GDK_PIXBUF_MOD_VERSION)\loaders.cache 					\
Packit 9c2278
		@(echo Converting symbolic SVG icons to PNG...) &							\
Packit 9c2278
		@(for %z in (16x16 24x24 32x32 48x48 64x64 96x96) do							\
Packit 9c2278
			@(echo Converting symbolic SVG icons to %z PNG...) &						\
Packit 9c2278
			@(for /f %d in ('dir /b /on $(SRCROOTDIR)\Adwaita\scalable') do					\
Packit 9c2278
				@(for /f %f in ('dir /b /on $(SRCROOTDIR)\Adwaita\scalable\%d') do			\
Packit 9c2278
					@($(PREFIX)\bin\gtk-encode-symbolic-svg $(SRCROOTDIR)\Adwaita\scalable\%d\%f	\
Packit 9c2278
					 %z -o $(PREFIX)\$(ICON_SUBDIR)\%z\%d))))
Packit 9c2278
	if not exist $(PREFIX)\share\pkgconfig mkdir $(PREFIX)\share\pkgconfig
Packit 9c2278
	copy adwaita-icon-theme.pc $(PREFIX)\share\pkgconfig
Packit 9c2278
	@if exist $(PREFIX)\bin\gtk-update-icon-cache.exe 								\
Packit 9c2278
	@(echo Update icon cache...) &											\
Packit 9c2278
	@($(PREFIX)\bin\gtk-update-icon-cache -q $(PREFIX)\$(ICON_SUBDIR))
Packit 9c2278
	@echo Adwaita icon theme install complete.
Packit 9c2278
Packit 9c2278
clean:
Packit 9c2278
	@-del index.theme
Packit 9c2278
	@-del index.theme.tmp
Packit 9c2278
	@-del dir_list.py
Packit 9c2278
	@-del adwaita-icon-theme.pc
Packit 9c2278
	@-for %a in (*.pyc) do @del *.pyc
Packit 9c2278
	@-if exist __pycache__ rmdir /s /q __pycache__