diff options
author | Max Brazhnikov <makc@FreeBSD.org> | 2013-03-19 17:59:30 +0000 |
---|---|---|
committer | Max Brazhnikov <makc@FreeBSD.org> | 2013-03-19 17:59:30 +0000 |
commit | f8a306de30bc1ccb6cbc442b3bb943bd6285a0b4 (patch) | |
tree | dc0bd38fecd36a96882bc0f1f26232611994e443 | |
parent | 5fa2f28efef1f282c7fda91022f74184068742b0 (diff) | |
download | ports-f8a306de30bc1ccb6cbc442b3bb943bd6285a0b4.tar.gz ports-f8a306de30bc1ccb6cbc442b3bb943bd6285a0b4.zip |
Notes
-rw-r--r-- | CHANGES | 15 | ||||
-rw-r--r-- | Mk/Uses/cmake.mk | 122 | ||||
-rw-r--r-- | Mk/bsd.cmake.mk | 103 | ||||
-rw-r--r-- | Mk/bsd.port.mk | 12 |
4 files changed, 145 insertions, 107 deletions
@@ -11,6 +11,21 @@ in the release notes and/or placed into UPDATING. All ports committers are allowed to commit to this file. 20130319: +AUTHOR: makc@FreeBSD.org + + * New USES macro should be used instead of deprecated USE_CMAKE and + CMAKE_OUTSOURCE: + + USES= cmake:outsource + to perform out-of-source build (equivalent to former pair usage of + USE_CMAKE/CMAKE_OUTSOURCE) + + USES= cmake + In-source build (equivalent to plain USE_CMAKE=yes) can be used if + project doesn't support out-of-source build. + + +20130319: AUTHOR: bapt@FreeBSD.org * The options framework now uses ports-mgmt/dialog4ports contributed by diff --git a/Mk/Uses/cmake.mk b/Mk/Uses/cmake.mk new file mode 100644 index 000000000000..46eeacab2bd5 --- /dev/null +++ b/Mk/Uses/cmake.mk @@ -0,0 +1,122 @@ +# $FreeBSD$ +# +# Provide support for CMake based projects +# +# MAINTAINER: kde@FreeBSD.org +# +# Feature: cmake +# Usage: USES=cmake or USES=cmake:ARGS +# Valid ARGS: outsource +# ARGS description: +# outsource perform an out-of-source build +# +# +# Additional variables that affect cmake behaviour: +# +# User defined variables: +# CMAKE_VERBOSE - Enable verbose build output +# Default: not set, until BATCH or PACKAGE_BUILDING is defined +# CMAKE_NOCOLOR - Disable colour build output +# Default: not set, until BATCH or PACKAGE_BUILDING is defined +# +# Variables for ports: +# CMAKE_ENV - Environment passed to cmake. +# Default: ${CONFIGURE_ENV} +# CMAKE_ARGS - Arguments passed to cmake +# Default: see below +# CMAKE_BUILD_TYPE - Type of build (cmake predefined build types). +# Projects may have their own build profiles. +# CMake supports the following types: Debug, +# Release, RelWithDebInfo and MinSizeRel. +# Debug and Release profiles respect system +# CFLAGS, RelWithDebInfo and MinSizeRel will set +# CFLAGS to "-O2 -g" and "-Os -DNDEBUG". +# Default: Release, if WITH_DEBUG is not set, +# Debug otherwise +# CMAKE_SOURCE_PATH - Path to the source directory +# Default: ${WRKSRC} +# +# Deprecated variables: +# CMAKE_OUTSOURCE - Instruct to perform an out-of-source build. +# Deprecated, use 'USES+= cmake:outsource' instead. + +.if !defined(_INCLUDE_USES_CMAKE_MK) +_INCLUDE_USES_CMAKE_MK= yes + +_valid_ARGS= outsource run +_cmake_ARGS= ${cmake_ARGS:C/\:/ /g} + +# Sanity check +.if defined(cmake_ARGS) +. for arg in ${_cmake_ARGS} +. if empty(_valid_ARGS:M${arg}) +IGNORE= Incorrect 'USES+= cmake:${cmake_ARGS}' usage: argument [${arg}] is not recognized +. endif +. endfor +.endif + +CMAKE_BIN= ${LOCALBASE}/bin/cmake +BUILD_DEPENDS+= ${CMAKE_BIN}:${PORTSDIR}/devel/cmake + +.if ${_cmake_ARGS:Mrun} +RUN_DEPENDS+= ${CMAKE_BIN}:${PORTSDIR}/devel/cmake +.endif + +.if defined(WITH_DEBUG) +CMAKE_BUILD_TYPE?= Debug +.else +CMAKE_BUILD_TYPE?= Release +.endif #defined(WITH_DEBUG) + +PLIST_SUB+= CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:L}" + +.if defined(STRIP) && ${STRIP} != "" +INSTALL_TARGET?= install/strip +.endif + +CMAKE_ENV?= ${CONFIGURE_ENV} +CMAKE_ARGS+= -DCMAKE_C_COMPILER:STRING="${CC}" \ + -DCMAKE_CXX_COMPILER:STRING="${CXX}" \ + -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \ + -DCMAKE_C_FLAGS_DEBUG:STRING="${CFLAGS}" \ + -DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS}" \ + -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \ + -DCMAKE_CXX_FLAGS_DEBUG:STRING="${CXXFLAGS}" \ + -DCMAKE_CXX_FLAGS_RELEASE:STRING="${CXXFLAGS}" \ + -DCMAKE_EXE_LINKER_FLAGS:STRING="${LDFLAGS}" \ + -DCMAKE_MODULE_LINKER_FLAGS:STRING="${LDFLAGS}" \ + -DCMAKE_SHARED_LINKER_FLAGS:STRING="${LDFLAGS}" \ + -DCMAKE_INSTALL_PREFIX:PATH="${PREFIX}" \ + -DCMAKE_BUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \ + -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES + +.if defined(BATCH) || defined(PACKAGE_BUILDING) +CMAKE_VERBOSE= yes +CMAKE_NOCOLOR= yes +.endif + +.if defined(CMAKE_VERBOSE) +CMAKE_ARGS+= -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON +.endif +.if defined(CMAKE_NOCOLOR) +CMAKE_ARGS+= -DCMAKE_COLOR_MAKEFILE:BOOL=OFF +.endif + +_CMAKE_MSG= "===> Performing in-source build" +CMAKE_SOURCE_PATH?= ${WRKSRC} + +.if ${_cmake_ARGS:Moutsource} +_CMAKE_MSG= "===> Performing out-of-source build" +CONFIGURE_WRKSRC= ${WRKDIR}/.build +BUILD_WRKSRC= ${CONFIGURE_WRKSRC} +INSTALL_WRKSRC= ${CONFIGURE_WRKSRC} +.endif + +.if !target(do-configure) +do-configure: + @${ECHO_MSG} ${_CMAKE_MSG} + ${MKDIR} ${CONFIGURE_WRKSRC} + @cd ${CONFIGURE_WRKSRC}; ${SETENV} ${CMAKE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${CMAKE_SOURCE_PATH} +.endif + +.endif #!defined(_INCLUDE_USES_CMAKE_MK) diff --git a/Mk/bsd.cmake.mk b/Mk/bsd.cmake.mk deleted file mode 100644 index df0d330daac1..000000000000 --- a/Mk/bsd.cmake.mk +++ /dev/null @@ -1,103 +0,0 @@ -#-*- tab-width: 4; -*- -# ex:ts=4 -# -# USE_CMAKE - If set, this port uses cmake. -# -# CMAKE_ENV - Environment passed to cmake. -# Default: ${CONFIGURE_ENV} -# CMAKE_ARGS - Arguments passed to cmake -# Default: see below -# CMAKE_BUILD_TYPE - Type of build (cmake predefined build types). -# Projects may have their own build profiles. -# CMake supports the following types: Debug, -# Release, RelWithDebInfo and MinSizeRel. -# Debug and Release profiles respect system -# CFLAGS, RelWithDebInfo and MinSizeRel will set -# CFLAGS to "-O2 -g" and "-Os -DNDEBUG". -# Default: Release, if WITH_DEBUG is not set, -# Debug otherwise -# CMAKE_VERBOSE - Verbose build -# Default: not set -# CMAKE_OUTSOURCE - Instruct to perform an out-of-source build -# Default: not set -# CMAKE_SOURCE_PATH - Path to sourcedir for cmake -# Default: ${WRKSRC} -# CMAKE_INSTALL_PREFIX - prefix for cmake to use for installation. -# Default: ${PREFIX} -# -# -# $FreeBSD$ - -CMAKE_MAINTAINER= kde@FreeBSD.org - -# -# CMAKE_BIN is the location where the cmake port installs the cmake -# executable -# -# CMAKE_PORT is where the cmake port is located in the ports tree -# -CMAKE_BIN= ${LOCALBASE}/bin/cmake -CMAKE_PORT= ${PORTSDIR}/devel/cmake - -# -# Make sure we depend on cmake -# -BUILD_DEPENDS+= ${CMAKE_BIN}:${CMAKE_PORT} - -# -# Default environment and arguments to cmake -# -CMAKE_ENV?= ${CONFIGURE_ENV} -CMAKE_ARGS+= -DCMAKE_C_COMPILER:STRING="${CC}" \ - -DCMAKE_CXX_COMPILER:STRING="${CXX}" \ - -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \ - -DCMAKE_C_FLAGS_DEBUG:STRING="${CFLAGS}" \ - -DCMAKE_C_FLAGS_RELEASE:STRING="${CFLAGS}" \ - -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \ - -DCMAKE_CXX_FLAGS_DEBUG:STRING="${CXXFLAGS}" \ - -DCMAKE_CXX_FLAGS_RELEASE:STRING="${CXXFLAGS}" \ - -DCMAKE_EXE_LINKER_FLAGS:STRING="${LDFLAGS}" \ - -DCMAKE_MODULE_LINKER_FLAGS:STRING="${LDFLAGS}" \ - -DCMAKE_SHARED_LINKER_FLAGS:STRING="${LDFLAGS}" \ - -DCMAKE_INSTALL_PREFIX:PATH="${CMAKE_INSTALL_PREFIX}" \ - -DCMAKE_BUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \ - -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES - -# -# Default build type and sourcedir -# -CMAKE_SOURCE_PATH?= ${WRKSRC} -.if defined(CMAKE_OUTSOURCE) -CONFIGURE_WRKSRC= ${WRKDIR}/.build -BUILD_WRKSRC= ${CONFIGURE_WRKSRC} -INSTALL_WRKSRC= ${CONFIGURE_WRKSRC} -.endif -CMAKE_INSTALL_PREFIX?= ${PREFIX} - -.if defined(WITH_DEBUG) -CMAKE_BUILD_TYPE?= Debug -.else -CMAKE_BUILD_TYPE?= Release -.endif - -.if defined(STRIP) && ${STRIP} != "" -INSTALL_TARGET?= install/strip -.endif - -PLIST_SUB+= CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:L}" - -# -# Force makefile verbosity if needed -# -.if defined(CMAKE_VERBOSE) || defined(BATCH) -CMAKE_ARGS+= -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -.endif - -# -# Redefine do-configure target -# -.if !target(do-configure) -do-configure: - ${MKDIR} ${CONFIGURE_WRKSRC} - @cd ${CONFIGURE_WRKSRC}; ${SETENV} ${CMAKE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${CMAKE_SOURCE_PATH} -.endif diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 3b17c2df6495..6ebf2934eb4c 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -1506,6 +1506,14 @@ PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg .include "${PORTSDIR}/Mk/bsd.pbi.mk" +.if defined(USE_CMAKE) +. if defined(CMAKE_OUTSOURCE) +USES+= cmake:outsource +. else +USES+= cmake +. endif +.endif + # Loading features .for f in ${USES} _f=${f:C/\:.*//g} @@ -2095,10 +2103,6 @@ RUN_DEPENDS+= ${_GL_${_component}_RUN_DEPENDS} .include "${PORTSDIR}/Mk/bsd.kde4.mk" .endif -.if defined(USE_CMAKE) -.include "${PORTSDIR}/Mk/bsd.cmake.mk" -.endif - .if exists(${PORTSDIR}/Makefile.inc) .include "${PORTSDIR}/Makefile.inc" USE_SUBMAKE= yes |