#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#

#
# Copyright 2016 Jim Klimov
#

BUILD_STYLE=cmake
BUILD_BITS=32_and_64
include ../../../make-rules/shared-macros.mk

COMPONENT_NAME=         physfs
COMPONENT_VERSION=      2.0.3
COMPONENT_REVISION=     3
COMPONENT_FMRI=         library/$(COMPONENT_NAME)
COMPONENT_SUMMARY=      PhysicsFS is a library to provide abstract access to various archives and limit write-access scope
COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.bz2
COMPONENT_ARCHIVE_HASH= \
	sha256:ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69
COMPONENT_ARCHIVE_URL=  \
	http://icculus.org/physfs/downloads/$(COMPONENT_ARCHIVE)
COMPONENT_PROJECT_URL=  http://icculus.org/physfs/
COMPONENT_CLASSIFICATION=System/Libraries
# LGPL is pulled by 7z/lzma support, otherwise PhysicsFS is zlib-licensed
COMPONENT_LICENSE=      ZLIB,LGPL
COMPONENT_LICENSE_FILE= LICENSE.txt

include $(WS_MAKE_RULES)/common.mk

CXXFLAGS.32=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
CFLAGS.32=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE

CXXFLAGS+=$(CXXFLAGS.$(BITS))
CFLAGS+=$(CFLAGS.$(BITS))

CMAKE_OPTIONS+=	-D PHYSFS_BUILD_STATIC=OFF
CMAKE_OPTIONS+=	-D PHYSFS_BUILD_SHARED=ON

# Use a definitive list of what we want to deliver
# (NOTE: dependency pkgs must be present for build)
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_ZIP=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_7Z=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_GRP=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_WAD=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_HOG=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_MVL=ON
CMAKE_OPTIONS+=	-D PHYSFS_ARCHIVE_QPAK=ON

# PHYSFS_HAVE_CDROM_SUPPORT detection requires mntent.h or sys/ucred.h
# We apply a patch that tries to implement the support with our headers
CMAKE_OPTIONS+=	-D PHYSFS_HAVE_CDROM_SUPPORT=ON

# We want proper threading, but no particular preference for test programs
# or choice of zlib, readline, etc. (see end of CMakeLists.txt in source)
CMAKE_OPTIONS+=	-D PHYSFS_HAVE_THREAD_SUPPORT=ON

# Auto-generated dependencies
REQUIRED_PACKAGES += library/readline
REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += system/library