Skip to content

Commit

Permalink
devel/poco: Modernize port Makefile
Browse files Browse the repository at this point in the history
* Replace CMAKE_ARGS and <opt>_CMAKE_[ON|OFF] by CMAKE_[ON|OFF] and
  <opt>_CMAKE_BOOL[_OFF] for handling cmake BOOL knobs
* Drop a CONFLICTS to a port that was removed in 2019
* As advised by portclippy, put all options descriptions in their own
  block

Approved by:	portmgr (blanket)
  • Loading branch information
Zirias committed Jul 16, 2023
1 parent bcfeb24 commit 1e4da4b
Showing 1 changed file with 43 additions and 54 deletions.
97 changes: 43 additions & 54 deletions devel/poco/Makefile
Expand Up @@ -15,73 +15,77 @@ LIB_DEPENDS= libpcre2-8.so:devel/pcre2 \
libexpat.so:textproc/expat2

USES= cmake compiler:c++14-lang cpe localbase pkgconfig tar:bz2
USE_LDCONFIG= yes

CONFLICTS= poco-ssl

CPE_VENDOR= pocoproject
USE_LDCONFIG= yes

CMAKE_ARGS= -DPOCO_UNBUNDLED:BOOL=ON
CMAKE_ON= POCO_UNBUNDLED
SHLIB_MAJOR= 94
PLIST_SUB= SHLIB_MAJOR=${SHLIB_MAJOR}

OPTIONS_DEFINE= ACTIVERECORD ENCODINGS JSON JWT MONGODB PAGECOMPILER \
PROMETHEUS REDIS SSL TEST XML ZIP
OPTIONS_RADIO= ODBC
OPTIONS_RADIO_ODBC= IODBC UNIXODBC
OPTIONS_GROUP= DB
OPTIONS_GROUP_DB= MYSQL PGSQL SQLITE
OPTIONS_DEFAULT= ACTIVERECORD ENCODINGS JSON JWT MYSQL MONGODB \
PAGECOMPILER PGSQL PROMETHEUS REDIS SQLITE SSL \
XML ZIP
OPTIONS_GROUP= DB
OPTIONS_GROUP_DB= MYSQL PGSQL SQLITE
OPTIONS_RADIO= ODBC
OPTIONS_RADIO_ODBC= IODBC UNIXODBC
OPTIONS_SUB= yes

# Database support
ACTIVERECORD_DESC= Enable ActiveRecord ORM and compiler
DB_DESC= Database support
ENCODINGS_DESC= Enable Encodings component
JWT_DESC= Enable JWT (JSON Web Token) component
MONGODB_DESC= Enable MongoDB support
PAGECOMPILER_DESC= Enable PageCompiler and File2Page
PROMETHEUS_DESC= Enable Prometheus component
ZIP_DESC= Enable Zip support

# Database support
MYSQL_USES= mysql
MYSQL_CMAKE_OFF= -DENABLE_DATA_MYSQL:BOOL=OFF
MYSQL_CMAKE_BOOL= ENABLE_DATA_MYSQL
PGSQL_USES= pgsql
PGSQL_CMAKE_OFF= -DENABLE_DATA_POSTGRESQL:BOOL=OFF
PGSQL_CMAKE_BOOL= ENABLE_DATA_POSTGRESQL
SQLITE_USES= sqlite
SQLITE_CMAKE_OFF= -DENABLE_DATA_SQLITE:BOOL=OFF
SQLITE_CMAKE_BOOL= ENABLE_DATA_SQLITE
IODBC_LIB_DEPENDS= libiodbc.so:databases/libiodbc
IODBC_CMAKE_ON= -DODBC_INCLUDE_DIR:PATH=${LOCALBASE}/include/libiodbc \
-DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libiodbc.so
UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
UNIXODBC_CMAKE_ON= -DODBC_INCLUDE_DIR:PATH=${LOCALBASE}/include \
-DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libodbc.so
UNIXODBC_CMAKE_ON= -DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libodbc.so

# Key-value store support
MONGODB_DESC= Enable MongoDB support
MONGODB_CMAKE_OFF= -DENABLE_MONGODB:BOOL=OFF
REDIS_CMAKE_OFF= -DENABLE_REDIS:BOOL=OFF
MONGODB_CMAKE_BOOL= ENABLE_MONGODB
REDIS_CMAKE_BOOL= ENABLE_REDIS

# Components
ACTIVERECORD_IMPLIES= XML
ACTIVERECORD_CMAKE_OFF= -DENABLE_ACTIVERECORD:BOOL=OFF \
-DENABLE_ACTIVERECORD_COMPILER:BOOL=OFF
ACTIVERECORD_DESC= Enable ActiveRecord ORM and compiler
ENCODINGS_CMAKE_OFF= -DENABLE_ENCODINGS:BOOL=OFF
ENCODINGS_DESC= Enable Encodings component
JSON_CMAKE_OFF= -DENABLE_JSON:BOOL=OFF
JWT_CMAKE_OFF= -DENABLE_JWT:BOOL=OFF
JWT_DESC= Enable JWT (JSON Web Token) component
ACTIVERECORD_CMAKE_BOOL= ENABLE_ACTIVERECORD \
ENABLE_ACTIVERECORD_COMPILER
ENCODINGS_CMAKE_BOOL= ENABLE_ENCODINGS
JSON_CMAKE_BOOL= ENABLE_JSON
JWT_IMPLIES= JSON SSL
PAGECOMPILER_CMAKE_OFF= -DENABLE_PAGECOMPILER:BOOL=OFF \
-DENABLE_PAGECOMPILER_FILE2PAGE:BOOL=OFF
PAGECOMPILER_DESC= Enable PageCompiler and File2Page
PROMETHEUS_CMAKE_OFF= -DENABLE_PROMETHEUS:BOOL=OFF
PROMETHEUS_DESC= Enable Prometheus component
JWT_CMAKE_BOOL= ENABLE_JWT
PAGECOMPILER_CMAKE_BOOL= ENABLE_PAGECOMPILER \
ENABLE_PAGECOMPILER_FILE2PAGE
PROMETHEUS_CMAKE_BOOL= ENABLE_PROMETHEUS
SSL_USES= ssl
SSL_CMAKE_OFF= -DENABLE_CRYPTO:BOOL=OFF \
-DENABLE_NETSSL:BOOL=OFF \
-DENABLE_JWT:BOOL=OFF
TEST_CMAKE_ON= -DENABLE_TESTS:BOOL=ON
SSL_CMAKE_BOOL= ENABLE_CRYPTO ENABLE_NETSSL
TEST_IMPLIES= JSON SQLITE SSL XML
TEST_CMAKE_BOOL= ENABLE_TESTS
TEST_TEST_TARGET= test
XML_CMAKE_OFF= -DENABLE_XML:BOOL=OFF
ZIP_CMAKE_OFF= -DENABLE_ZIP:BOOL=OFF
ZIP_DESC= Enable Zip support
XML_CMAKE_BOOL= ENABLE_XML
ZIP_CMAKE_BOOL= ENABLE_ZIP

post-patch:
@${REINPLACE_CMD} -e \
's|CMAKE_DEBUG_POSTFIX "d"|CMAKE_DEBUG_POSTFIX ""|' \
${WRKSRC}/cmake/DefinePlatformSpecifc.cmake

# Avoid conflict with archivers/arc
post-install-ACTIVERECORD-on:
@${MV} ${STAGEDIR}${PREFIX}/bin/arc ${STAGEDIR}${PREFIX}/bin/arc-poco

.include <bsd.port.options.mk>

Expand All @@ -94,23 +98,8 @@ PLIST_SUB+= DATA="@comment "
.if ${PORT_OPTIONS:MIODBC} || ${PORT_OPTIONS:MUNIXODBC}
PLIST_SUB+= ODBC=""
.else
CMAKE_ARGS+= -DENABLE_DATA_ODBC:BOOL=OFF
CMAKE_OFF+= ENABLE_DATA_ODBC
PLIST_SUB+= ODBC="@comment "
.endif

.for opt in ${_ALL_OPTIONS}
.if !${OPTIONS_DEFINE:M${opt}}
PLIST_SUB+= ${opt}="@comment "
.endif
.endfor

post-patch:
@${REINPLACE_CMD} -e \
's|CMAKE_DEBUG_POSTFIX "d"|CMAKE_DEBUG_POSTFIX ""|' \
${WRKSRC}/cmake/DefinePlatformSpecifc.cmake

# Avoid conflict with archivers/arc
post-install-ACTIVERECORD-on:
@${MV} ${STAGEDIR}${PREFIX}/bin/arc ${STAGEDIR}${PREFIX}/bin/arc-poco

.include <bsd.port.mk>

0 comments on commit 1e4da4b

Please sign in to comment.