# vim: ft=make ts=4 sw=4 noet
.DEFAULT_GOAL := all

NAME    = cmake
VERSION = 4.3.3
GARTYPE = v2

MASTER_SITES =
DYNURLS   = https://github.com/Kitware/CMake/releases/download/v$(VERSION)/$(DISTNAME).tar.gz
DISTFILES += $(DISTNAME).tar.gz

WORKSRC = $(WORKDIR)/$(DISTNAME)

LICENSE = LICENSE.rst

PACKAGES                 += OZSWcmake
SPKG_DESC_OZSWcmake       = Cross-platform build system generator
CATALOGNAME_OZSWcmake     = cmake

BUILD_DEP_PKGS += OZSWopenssl
RUNTIME_DEP_PKGS_OZSWcmake += OZSWopenssl

CONFIGURE_SCRIPTS = $(WORKSRC)/bootstrap

CONFIGURE_ARGS  = --prefix=$(prefix)
CONFIGURE_ARGS += --parallel=4
CONFIGURE_ARGS += --no-qt-gui
CONFIGURE_ARGS += --
CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE=Release
CONFIGURE_ARGS += -DCMAKE_USE_OPENSSL=ON
CONFIGURE_ARGS += -DOPENSSL_ROOT_DIR=$(prefix)
CONFIGURE_ARGS += -DCMAKE_INSTALL_RPATH=$(prefix)/lib
CONFIGURE_ARGS += -DBUILD_TESTING=OFF
CONFIGURE_ARGS += -DBUILD_CursesDialog=OFF

configure-%/bootstrap:
	@echo " ==> Running cmake bootstrap in $*"
	cd $* && /usr/bin/env -i $(CONFIGURE_ENV) /usr/bin/bash bootstrap $(CONFIGURE_ARGS)
	@$(MAKECOOKIE)

post-extract:
	# kwsys: force utimensat compile-test to fail (false positive on snv_111b)
	gsed -i \
	    '/^#ifdef TEST_KWSYS_CXX_HAS_UTIMENSAT/a #error "utimensat not available on OpenSolaris 2009.06"' \
	    $(WORKSRC)/Source/kwsys/kwsysPlatformTestsCXX.cxx
	# libuv fs.c: remove __sun from utimensat guards — utimensat(2) absent on snv_111b
	gsed -i \
	    '/static ssize_t uv__fs_utime/,/return utimensat/{/|| defined(__sun)/d}' \
	    $(WORKSRC)/Utilities/cmlibuv/src/unix/fs.c
	gsed -i \
	    '/static ssize_t uv__fs_lutime/,/return utimensat/{/defined(__sun)/d}' \
	    $(WORKSRC)/Utilities/cmlibuv/src/unix/fs.c
	# libuv sunos.c: ifaddrs.h absent on snv_111b; force SUNOS_NO_IFADDRS
	gsed -i \
	    's/#if !defined(SUNOS_NO_IFADDRS) && _XOPEN_SOURCE < 600/#if 1/' \
	    $(WORKSRC)/Utilities/cmlibuv/src/unix/sunos.c
	@$(MAKECOOKIE)

post-install:
	# Solaris pkgmk (snv_111b) segfaults on filenames containing spaces.
	# cmake's Help/generator/ docs have names like "Unix Makefiles.rst".
	# Remove this directory; cmake functions correctly without it.
	rm -rf $(DESTDIR)$(datadir)/cmake-4.3/Help/generator
	@$(MAKECOOKIE)

include gar/category.mk
