build: Rework some things for autoconf and cmake builds
Signed-off-by: Ben Collins <bcollins@ubuntu.com>
This commit is contained in:
parent
545651633d
commit
f736768b8e
7 changed files with 49 additions and 15 deletions
14
.travis.yml
14
.travis.yml
|
@ -1,5 +1,4 @@
|
|||
language: c
|
||||
dist: jammy
|
||||
os: linux
|
||||
arch:
|
||||
- amd64
|
||||
|
@ -28,20 +27,33 @@ before_script:
|
|||
|
||||
jobs:
|
||||
include:
|
||||
- name: "Autotools Build (focal)"
|
||||
env: BUILD=auto
|
||||
dist: focal
|
||||
script:
|
||||
- ../configure
|
||||
- grep libjwt_version_info ../configure
|
||||
- grep libjwt_version_info Makefile
|
||||
- grep version-info libjet/Makefile
|
||||
- make
|
||||
|
||||
- name: "CMake Build"
|
||||
env: BUILD=cmake
|
||||
dist: jammy
|
||||
script:
|
||||
- cmake -DWITH_GNUTLS=YES -DWITH_OPENSSL=YES ..
|
||||
- make check
|
||||
|
||||
- name: "Autotools Build"
|
||||
env: BUILD=auto
|
||||
dist: jammy
|
||||
script:
|
||||
- ../configure --with-openssl --with-gnutls
|
||||
- make check
|
||||
|
||||
- name: "Coverage Build"
|
||||
env: BUILD=coverage
|
||||
dist: jammy
|
||||
script:
|
||||
- ../configure --without-gnutls --enable-code-coverage --enable-valgrind
|
||||
- make check-valgrind check-code-coverage
|
||||
|
|
|
@ -12,8 +12,12 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
|||
# Extract info from configure.ac
|
||||
include(AutoToolsVersion)
|
||||
|
||||
project(${LIBJWT_PROJECT} VERSION ${LIBJWT_VERSION} LANGUAGES C)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
|
||||
project(${LIBJWT_PROJECT}
|
||||
VERSION ${LIBJWT_VERSION}
|
||||
DESCRIPTION ${LIBJWT_DESCRIPTION}
|
||||
HOMEPAGE_URL ${LIBJWT_HOMEPAGE_URL}
|
||||
LANGUAGES C)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
|
||||
# Find all the things we need for the library
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
@ -149,6 +153,7 @@ if (DOXYGEN_FOUND)
|
|||
"VERSION=${PROJECT_VERSION}"
|
||||
"DOCDIR=${CMAKE_BINARY_DIR}/doxygen-doc"
|
||||
"SRCDIR=${CMAKE_SOURCE_DIR}"
|
||||
"PROJECT_BRIEF=${CMAKE_PROJECT_DESCRIPTION}"
|
||||
"HAVE_DOT=YES"
|
||||
"DOT_PATH=${DOXYGEN_DOT_EXECUTABLE}")
|
||||
|
||||
|
|
4
Doxyfile
4
Doxyfile
|
@ -54,14 +54,14 @@ PROJECT_NUMBER = "v$(VERSION)"
|
|||
# for a project that appears at the top of each page and should give viewer a
|
||||
# quick idea about the purpose of the project. Keep the description short.
|
||||
|
||||
PROJECT_BRIEF = "The C JSON Web Token Library +JWK +JWKS"
|
||||
PROJECT_BRIEF = $(PROJECT_BRIEF)
|
||||
|
||||
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
|
||||
# in the documentation. The maximum height of the logo should not exceed 55
|
||||
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
||||
# the logo to the output directory.
|
||||
|
||||
PROJECT_LOGO = $(SRCDIR)/images/LibJWT-Icon-95x91.png
|
||||
PROJECT_LOGO = $(SRCDIR)/images/LibJWT.svg height=100
|
||||
|
||||
# With the PROJECT_ICON tag one can specify an icon that is included in the tabs
|
||||
# when the HTML document is shown. Doxygen will copy the logo to the output
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
# Get information from configure.ac
|
||||
FILE(STRINGS "${CMAKE_SOURCE_DIR}/configure.ac" configure REGEX "m4_define")
|
||||
FILE(STRINGS "${CMAKE_SOURCE_DIR}/configure.ac" configure REGEX "^m4_define")
|
||||
foreach (line ${configure})
|
||||
foreach (var major_version minor_version micro_version
|
||||
so_current so_revision so_age libjwt_project)
|
||||
so_current so_revision so_age libjwt_project
|
||||
libjwt_bugs libjwt_url libjwt_brief)
|
||||
if (NOT ${var} AND line MATCHES "m4_define\\(\\[${var}\\],.*\\[(.*)\\]\\)")
|
||||
set(${var} "${CMAKE_MATCH_1}")
|
||||
break()
|
||||
|
@ -12,6 +13,8 @@ endforeach()
|
|||
|
||||
set(LIBJWT_VERSION "${major_version}.${minor_version}.${micro_version}")
|
||||
set(LIBJWT_PROJECT "${libjwt_project}")
|
||||
set(LIBJWT_DESCRIPTION "${libjwt_brief}")
|
||||
set(LIBJWT_HOMEPAGE_URL "${libjwt_url}")
|
||||
|
||||
# WWLTD (What would libtool do)
|
||||
math(EXPR SO_MAJOR "${so_current} - ${so_age}")
|
||||
|
@ -19,4 +22,3 @@ set(SO_MINOR "${so_age}")
|
|||
set(SO_REVISION "${so_revision}")
|
||||
set(LIBJWT_VERSION_INFO "${SO_MAJOR}.${SO_MINOR}.${SO_REVISION}")
|
||||
set(LIBJWT_COMPATVERSION "${SO_MAJOR}")
|
||||
|
||||
|
|
27
configure.ac
27
configure.ac
|
@ -1,4 +1,9 @@
|
|||
dnl This sets it for Autconf and CMake
|
||||
dnl The use of m4_define here is to make it easy to parse by CMakeLists.txt.
|
||||
dnl That way there's one source for this info
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
|
||||
dnl The library version
|
||||
m4_define([major_version], [2])
|
||||
m4_define([minor_version], [1])
|
||||
m4_define([micro_version], [0])
|
||||
|
@ -13,10 +18,21 @@ m4_define([so_revision], [1])
|
|||
m4_define([so_age], [11])
|
||||
m4_define([libjwt_version_info], [so_current:so_revision:so_age])
|
||||
|
||||
m4_define([libjwt_project], [LibJWT])
|
||||
m4_define([libjwt_project], [LibJWT])
|
||||
m4_define([libjwt_bugs], [https://github.com/benmcollins/libjwt/issues])
|
||||
m4_define([libjwt_url], [https://libjwt.io])
|
||||
m4_define([libjwt_brief], [The C JSON Web Token Library +JWK +JWKS])
|
||||
|
||||
AC_INIT([libjwt_project],
|
||||
[libjwt_version],
|
||||
[libjwt_bugs],
|
||||
[],
|
||||
[libjwt_url])
|
||||
|
||||
AC_SUBST([LIBJWT_VERSION_INFO], [libjwt_version_info])
|
||||
AC_DEFINE([PACKAGE_DESCRIPTION], ["libjwt_brief"], [Description of this project])
|
||||
AC_SUBST([PACKAGE_DESCRIPTION], ["libjwt_brief"])
|
||||
|
||||
AC_PREREQ([2.61])
|
||||
AC_INIT([libjwt_project],[libjwt_version],[https://github.com/benmcollins/libjwt/issues])
|
||||
AC_LANG([C])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects dist-bzip2])
|
||||
LT_PREREQ([2.2])
|
||||
|
@ -24,8 +40,6 @@ LT_INIT([])
|
|||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_HEADERS([libjwt/config.h])
|
||||
|
||||
AC_SUBST([libjwt_version_info], [libjwt_version_info])
|
||||
|
||||
AC_SUBST([AM_CFLAGS], [-Wall])
|
||||
|
||||
[RPMB_GNUTLS="--without gnutls"]
|
||||
|
@ -115,6 +129,7 @@ DX_RTF_FEATURE(OFF)
|
|||
DX_XML_FEATURE(OFF)
|
||||
DX_PDF_FEATURE(OFF)
|
||||
DX_PS_FEATURE(OFF)
|
||||
DX_ENV_APPEND(PROJECT_BRIEF, $PACKAGE_DESCRIPTION)
|
||||
DX_INIT_DOXYGEN($PACKAGE_NAME, Doxyfile)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 12 KiB |
|
@ -12,7 +12,7 @@ lib_LTLIBRARIES = libjwt.la
|
|||
|
||||
libjwt_la_SOURCES = jwt.c jwks.c base64.c
|
||||
|
||||
libjwt_la_LDFLAGS = -version-info @libjwt_version_info@ $(OPENSSL_LDFLAGS) \
|
||||
libjwt_la_LDFLAGS = -version-info $(LIBJWT_VERSION_INFO) $(OPENSSL_LDFLAGS) \
|
||||
$(GNUTLS_LDFLAGS) $(MBEDTLS_LIBS) $(JANSSON_LDFLAGS) -no-undefined
|
||||
libjwt_la_CPPFLAGS = -I$(top_srcdir)/include $(OPENSSL_INCLUDES) \
|
||||
$(MBEDTLS_INCS) $(GNUTLS_INCLUDES) $(CODE_COVERAGE_CPPFLAGS) -Wall
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue