From ec688b4723a041044226358bcd4dd6e2da39da49 Mon Sep 17 00:00:00 2001 From: Luca Muscariello Date: Thu, 23 Feb 2017 17:01:02 +0100 Subject: Initial commit: cframework. Longbow and Libparc Change-Id: I90378dbd30da6033b20fb1f829b3b822cf366c59 Signed-off-by: Luca Muscariello --- libparc/CMakeLists.txt | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 libparc/CMakeLists.txt (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt new file mode 100644 index 00000000..6528d582 --- /dev/null +++ b/libparc/CMakeLists.txt @@ -0,0 +1,73 @@ +cmake_minimum_required(VERSION 3.2) +project(Libparc) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED ON) + +if( UNIX ) + link_libraries(m) +endif( UNIX ) + +include( CTest ) +include( version ) +include( detectCacheSize ) + +if(ANDROID_API) + message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -Wall") +else() +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") +# set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DPARCLibrary_DISABLE_VALIDATION") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -DNDEBUG -DPARCLibrary_DISABLE_VALIDATION") + find_package( Doxygen ) +endif() + +include_directories($ENV{CCNX_DEPENDENCIES}/include) +set(OPENSSL_ROOT_DIR $ENV{CCNX_DEPENDENCIES}) + +include_directories(${PROJECT_BINARY_DIR}/parc ${PROJECT_SOURCE_DIR}) + +find_package( LongBow REQUIRED ) +include_directories(${LONGBOW_INCLUDE_DIRS}) + +find_package( LibEvent REQUIRED ) +include_directories(${LIBEVENT_INCLUDE_DIRS}) + +find_package ( Threads REQUIRED ) + +find_package ( OpenSSL REQUIRED ) + + +set(PARC_BIN_LIBRARIES + parc + ${LONGBOW_LIBRARIES} + ${LIBEVENT_LIBRARIES} + ${OPENSSL_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) + +set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + +add_custom_target(${PROJECT_NAME}_cleanup_profiling_data + "find" "." "-name" "*.gcda" "-delete" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Cleanup previous profiling data.") +if (ANDROID_API) + macro(AddTest testFile) + message("Android build: Skipping test ${ARGV0}") + endmacro(AddTest) +else() + macro(AddTest testFile) + add_executable(${ARGV0} ${ARGV0}.c) + target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) + add_test(NAME ${ARGV0} COMMAND ${ARGV0}) + set_target_properties(${ARGV0} PROPERTIES FOLDER Test) + add_dependencies(${ARGV0} ${PROJECT_NAME}_cleanup_profiling_data) + endmacro(AddTest) +endif() + +add_subdirectory(parc) +add_subdirectory(documentation) -- cgit 1.2.3-korg From 865488d0d442ef188066a3c8b5be331dbe10ac9f Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 27 Mar 2017 16:14:17 +0200 Subject: Adding support for creating DEB and RPM packages Change-Id: If97fbd6df4e3e82b7e251fa2d3f40d3862d1fcc5 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 49 +++++++++++++++++++ libparc/documentation/CMakeLists.txt | 8 +-- longbow/CMakeLists.txt | 57 ++++++++++++++++++++-- longbow/documentation/CMakeLists.txt | 8 +-- .../src/python/site-packages/longbow/Language_C.py | 4 +- 5 files changed, 113 insertions(+), 13 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 6528d582..70bada4c 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -3,6 +3,9 @@ project(Libparc) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set_property(GLOBAL PROPERTY USE_FOLDERS ON) +set(${CMAKE_PROJECT_NAME}_VERSION_MAJOR 1) +set(${CMAKE_PROJECT_NAME}_VERSION_MINOR 0) + set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) @@ -71,3 +74,49 @@ endif() add_subdirectory(parc) add_subdirectory(documentation) + +# Generate DEB / RPM packages + +option(DEB_PACKAGE "Create deb package" OFF) +option(RPM_PACKAGE "Create deb package" OFF) + +SET(VENDOR "Cisco Systems" CACHE STRING "Vendor") +SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") +SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") +SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") +SET(PACKAGE_MAINTAINER "Mauro Sardara" CACHE STRING "Maintainer") +SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") +SET(BUILD_NUMBER "1" CACHE STRING "Build Number") +STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) + +SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") +SET(CPACK_PACKAGE_VERSION_MAJOR ${${CMAKE_PROJECT_NAME}_VERSION_MAJOR}) +SET(CPACK_PACKAGE_VERSION_MINOR ${${CMAKE_PROJECT_NAME}_VERSION_MINOR}) +SET(CPACK_PACKAGE_VENDOR ${VENDOR}) +SET(CPACK_PACKAGE_CONTACT ${CONTACT}) + +if(DEB_PACKAGE) + SET(TYPE "DEBIAN") + SET(GENERATOR "DEB") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}~${DISTRIBUTION}_${ARCHITECTURE}") + SET(CPACK_${TYPE}_PACKAGE_REQUIRES "longbow >= 1.0, libevent-2.0-5, libssl1.0.0") +elseif(RPM_PACKAGE) + SET(TYPE "RPM") + SET(GENERATOR "RPM") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}.${DISTRIBUTION}.${ARCHITECTURE}") + SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") + SET(CPACK_${TYPE}_PACKAGE_REQUIRES "longbow >= 1.0, libevent >= 2.0, openssl >= 1.0") +else() + RETURN() +endif() + +SET(CPACK_GENERATOR ${GENERATOR}) +SET(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) +SET(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) +SET(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) +SET(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) +SET(CPACK_${TYPE}_PACKAGE_RELEASE 1) +SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) +SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "The PARC Library is a C runtime providing an array of features and capabilities for C programs and programmers.") + +INCLUDE(CPack) \ No newline at end of file diff --git a/libparc/documentation/CMakeLists.txt b/libparc/documentation/CMakeLists.txt index af99ad9b..ced2c4a1 100644 --- a/libparc/documentation/CMakeLists.txt +++ b/libparc/documentation/CMakeLists.txt @@ -5,10 +5,10 @@ if(DOXYGEN_FOUND) set(GITHUB_REMOTE http://github.com/PARC/Libparc) configure_file(libparc.doxygen.in config.doxygen @ONLY) - install(DIRECTORY images/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/images) - install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/doxygen-extras) - install(DIRECTORY examples/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/examples) - install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + install(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/images) + install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/doxygen-extras) + install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/examples) + install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/) set(HTML_PATH ${CMAKE_CURRENT_BINARY_DIR}/generated-documentation/html) diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 46c9fd9f..2c40e3c1 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -3,6 +3,9 @@ project(LongBow) include( CTest ) +set(${CMAKE_PROJECT_NAME}_VERSION_MAJOR 1) +set(${CMAKE_PROJECT_NAME}_VERSION_MINOR 0) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_C_STANDARD 99) @@ -10,12 +13,12 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -execute_process(COMMAND ${PROJECT_SOURCE_DIR}/cmake/get_version.sh ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE RELEASE_VERSION +execute_process(COMMAND ${PROJECT_SOURCE_DIR}/cmake/get_version.sh ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE RELEASE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date -u +%Y-%m-%dT%H:%M:%SZ - OUTPUT_VARIABLE ISO_DATE + OUTPUT_VARIABLE ISO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) MESSAGE( STATUS "Configuring version ${RELEASE_VERSION}" ) @@ -39,7 +42,7 @@ set( PYVERSION ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} ) set( INSTALL_BASE_PYTHON_DIR ${CMAKE_INSTALL_PREFIX}/lib/python${PYVERSION}/site-packages ) set( INSTALL_PYTHON_DIR ${INSTALL_BASE_PYTHON_DIR}/longbow ) -set( DEPENDENCY_PYTHON_DIR ${DEPENDENCY_DIR}/etc/site-packages ) +set( DEPENDENCY_PYTHON_DIR ${DEPENDENCY_DIR}/etc/site-packages ) set( VERSION ${RELEASE_VERSION} ) set( DATE ${ISO_DATE} ) set( UNCRUSTIFY_BIN ${UNCRUSTIFY_BIN} ) @@ -70,4 +73,50 @@ else() add_subdirectory(src) add_subdirectory(documentation) + + # Generate DEB / RPM packages + + option(DEB_PACKAGE "Create deb package" OFF) + option(RPM_PACKAGE "Create deb package" OFF) + + SET(VENDOR "Cisco Systems" CACHE STRING "Vendor") + SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") + SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") + SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") + SET(PACKAGE_MAINTAINER "Mauro Sardara" CACHE STRING "Maintainer") + SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") + SET(BUILD_NUMBER "1" CACHE STRING "Build Number") + STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) + + SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") + SET(CPACK_PACKAGE_VERSION_MAJOR ${${CMAKE_PROJECT_NAME}_VERSION_MAJOR}) + SET(CPACK_PACKAGE_VERSION_MINOR ${${CMAKE_PROJECT_NAME}_VERSION_MINOR}) + SET(CPACK_PACKAGE_VENDOR ${VENDOR}) + SET(CPACK_PACKAGE_CONTACT ${CONTACT}) + + if(DEB_PACKAGE) + SET(TYPE "DEBIAN") + SET(GENERATOR "DEB") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}~${DISTRIBUTION}_${ARCHITECTURE}") + elseif(RPM_PACKAGE) + SET(TYPE "RPM") + SET(GENERATOR "RPM") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}.${DISTRIBUTION}.${ARCHITECTURE}") + SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") + else() + RETURN() + endif() + + SET(CPACK_GENERATOR ${GENERATOR}) + SET(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) + SET(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) + SET(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) + SET(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) + SET(CPACK_${TYPE}_PACKAGE_RELEASE 1) + SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) + SET(CPACK_${TYPE}_PACKAGE_REQUIRES "python >= 2.7.0") + SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") + + INCLUDE(CPack) + endif() \ No newline at end of file diff --git a/longbow/documentation/CMakeLists.txt b/longbow/documentation/CMakeLists.txt index c25ffc16..33f92995 100644 --- a/longbow/documentation/CMakeLists.txt +++ b/longbow/documentation/CMakeLists.txt @@ -5,10 +5,10 @@ if(DOXYGEN_FOUND) set(GITHUB_REMOTE http://github.com/PARC/LongBow) configure_file(longbow.doxygen.in config.doxygen @ONLY) - install(DIRECTORY images/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/images) - install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/doxygen-extras) - install(DIRECTORY examples/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/examples) - install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + install(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/images) + install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/doxygen-extras) + install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/examples) + install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow) set(HTML_PATH ${CMAKE_CURRENT_BINARY_DIR}/generated-documentation/html) diff --git a/longbow/src/python/site-packages/longbow/Language_C.py b/longbow/src/python/site-packages/longbow/Language_C.py index 85183133..1d97a676 100755 --- a/longbow/src/python/site-packages/longbow/Language_C.py +++ b/longbow/src/python/site-packages/longbow/Language_C.py @@ -47,8 +47,10 @@ def getLibPathForObject(libraryPath, filename): return result class Module: - '''Represent a C language module. + ''' + Represent a C language module. A module consists of the file names of the C source, C header file, object file, and an executable file + ''' def __init__(self, srcPath, objectDirs=[]): self.path = self.initialzePath(srcPath) if not objectDirs: -- cgit 1.2.3-korg From 3567e965b790d36ee9faa8a2423886afa0060421 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 7 Apr 2017 20:26:06 +0200 Subject: Adding packaging info to CMakeLists.txt Change-Id: Id282857b8cd13d9a604250997b54b7111a910c18 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 8 +++++--- longbow/CMakeLists.txt | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 70bada4c..821a8d05 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -84,7 +84,7 @@ SET(VENDOR "Cisco Systems" CACHE STRING "Vendor") SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") -SET(PACKAGE_MAINTAINER "Mauro Sardara" CACHE STRING "Maintainer") +SET(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") SET(BUILD_NUMBER "1" CACHE STRING "Build Number") STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) @@ -99,7 +99,7 @@ if(DEB_PACKAGE) SET(TYPE "DEBIAN") SET(GENERATOR "DEB") SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}~${DISTRIBUTION}_${ARCHITECTURE}") - SET(CPACK_${TYPE}_PACKAGE_REQUIRES "longbow >= 1.0, libevent-2.0-5, libssl1.0.0") + SET(CPACK_${TYPE}_PACKAGE_DEPENDS "longbow (>= 1.0), libevent-2.0-5, libssl1.0.0") elseif(RPM_PACKAGE) SET(TYPE "RPM") SET(GENERATOR "RPM") @@ -110,6 +110,7 @@ else() RETURN() endif() + SET(CPACK_GENERATOR ${GENERATOR}) SET(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) SET(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) @@ -118,5 +119,6 @@ SET(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) SET(CPACK_${TYPE}_PACKAGE_RELEASE 1) SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "The PARC Library is a C runtime providing an array of features and capabilities for C programs and programmers.") +SET(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") -INCLUDE(CPack) \ No newline at end of file +INCLUDE(CPack) diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index ae47ca6f..b899dfd5 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -82,7 +82,7 @@ else() SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") - SET(PACKAGE_MAINTAINER "Mauro Sardara" CACHE STRING "Maintainer") + SET(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") SET(BUILD_NUMBER "1" CACHE STRING "Build Number") STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) @@ -115,6 +115,7 @@ else() SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) SET(CPACK_${TYPE}_PACKAGE_REQUIRES "python >= 2.7.0") SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") + SET(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") INCLUDE(CPack) -- cgit 1.2.3-korg From b68074b143fb9f97200695473b841fe77fbf8cf8 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Thu, 13 Apr 2017 11:44:29 +0200 Subject: Adding support for package creation. The script for creating the package is scripts/build-package.sh, and it will create the correct package depending on the OS and the architecture users are running on. Supported OS: Ubuntu 16.04, Ubuntu 14.04 and Centos7 Change-Id: I72bde4808067cd1dd80bb389b690d49e1b643f87 Signed-off-by: Mauro Sardara --- libparc/.gitignore | 2 - libparc/CMakeLists.txt | 15 ++- libparc/scripts/build-package.sh | 220 +++++++++++++++++++++++++++++++++++++++ libparc/scripts/version | 56 ++++++++++ longbow/.gitignore | 1 - longbow/CMakeLists.txt | 22 ++-- longbow/scripts/build-package.sh | 219 ++++++++++++++++++++++++++++++++++++++ longbow/scripts/version | 57 ++++++++++ 8 files changed, 569 insertions(+), 23 deletions(-) create mode 100644 libparc/scripts/build-package.sh create mode 100644 libparc/scripts/version create mode 100644 longbow/scripts/build-package.sh create mode 100644 longbow/scripts/version (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/.gitignore b/libparc/.gitignore index c4d2eae4..926b1a2c 100644 --- a/libparc/.gitignore +++ b/libparc/.gitignore @@ -57,8 +57,6 @@ test_parc_URIPath test_parc_URIAuthority test_parc_URISegment -VERSION - parc/parcLibrary_About.c parc/parcLibrary_About.h parc/parc_About.c diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 821a8d05..01079ee3 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -3,9 +3,6 @@ project(Libparc) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set_property(GLOBAL PROPERTY USE_FOLDERS ON) -set(${CMAKE_PROJECT_NAME}_VERSION_MAJOR 1) -set(${CMAKE_PROJECT_NAME}_VERSION_MINOR 0) - set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) @@ -85,25 +82,27 @@ SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") SET(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") -SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") SET(BUILD_NUMBER "1" CACHE STRING "Build Number") STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") -SET(CPACK_PACKAGE_VERSION_MAJOR ${${CMAKE_PROJECT_NAME}_VERSION_MAJOR}) -SET(CPACK_PACKAGE_VERSION_MINOR ${${CMAKE_PROJECT_NAME}_VERSION_MINOR}) SET(CPACK_PACKAGE_VENDOR ${VENDOR}) SET(CPACK_PACKAGE_CONTACT ${CONTACT}) +# Get the version +execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version + OUTPUT_VARIABLE PACKAGE_VERSION) +string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) + if(DEB_PACKAGE) SET(TYPE "DEBIAN") SET(GENERATOR "DEB") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}~${DISTRIBUTION}_${ARCHITECTURE}") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}") SET(CPACK_${TYPE}_PACKAGE_DEPENDS "longbow (>= 1.0), libevent-2.0-5, libssl1.0.0") elseif(RPM_PACKAGE) SET(TYPE "RPM") SET(GENERATOR "RPM") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}.${DISTRIBUTION}.${ARCHITECTURE}") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}") SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") SET(CPACK_${TYPE}_PACKAGE_REQUIRES "longbow >= 1.0, libevent >= 2.0, openssl >= 1.0") else() diff --git a/libparc/scripts/build-package.sh b/libparc/scripts/build-package.sh new file mode 100644 index 00000000..846713ee --- /dev/null +++ b/libparc/scripts/build-package.sh @@ -0,0 +1,220 @@ +#!/bin/bash +# basic build script example +set -euxo pipefail +IFS=$'\n\t' + +APT_PATH=`which apt-get` || true +apt_get=${APT_PATH:-"/usr/local/bin/apt-get"} + +BUILD_TOOLS_UBUNTU="build-essential cmake" +LIBSSL_LIBEVENT_UBUNTU="libevent-dev libssl-dev" +DEPS_UBUNTU="longbow $LIBSSL_LIBEVENT_UBUNTU" + +BUILD_TOOLS_GROUP_CENTOS="'Development Tools'" +BUILD_TOOLS_SINGLE_CENTOS="cmake" +LIBSSL_LIBEVENT_CENTOS="libevent-devel openssl-devel" +DEPS_CENTOS="longbow $LIBSSL_LIBEVENT_CENTOS" + +# Parameters: +# $1 = Distribution [Trusty / CentOS] +# +update_cmake_repo() { + + DISTRIBUTION=$1 + + if [ "$DISTRIBUTION" == "trusty" ]; then + sudo ${apt_get} install -y --allow-unauthenticated software-properties-common + sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x + elif [ "$DISTRIBUTION" == "CentOS" ]; then + sudo cat << EOF > cmake.repo +[cmake-repo] +name=Repo for cmake3 +baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/ +enabled=1 +gpgcheck=0 +EOF + sudo cat << EOF > jsoncpp.repo +[jsoncp-repo] +name=Repo for jsoncpp +baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/ +enabled=1 +gpgcheck=0 +EOF + sudo mv cmake.repo /etc/yum.repos.d/cmake.repo + sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo + fi +} + +# Parameters: +# $1 = Distribution codename +# +update_qt_repo() { + DISTRIBUTION_CODENAME=$1 + + if [ "$DISTRIBUTION_CODENAME" != "trusty" ] && [ "$DISTRIBUTION_CODENAME" != "xenial" ]; then + echo "No valid distribution specified when calling 'update_qt_repo'. Exiting.." + exit -1 + fi + + sudo ${apt_get} install -y --allow-unauthenticated software-properties-common + sudo add-apt-repository --yes ppa:beineri/opt-qt571-$DISTRIBUTION_CODENAME + + wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add - + sudo sh -c "echo 'deb http://archive.getdeb.net/ubuntu $DISTRIBUTION_CODENAME-getdeb apps' >> /etc/apt/sources.list.d/getdeb.list" + + sudo ${apt_get} update +} + +# Parameters: +# $1 = Distribution id +# $2 = Distribution codename +# +update_fdio_repo() { + DISTRIB_ID=$1 + DISTRIB_CODENAME=$2 + + NEXUS_PROXY=${NEXUSPROXY:-"http://nexus.fd.io"} + REPO_CICN_URL="" + REPO_VPP_URL="" + + if [ "$DISTRIB_ID" == "Ubuntu" ]; then + + if [ "$DISTRIB_CODENAME" == "xenial" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.xenial.main/" + REPO=${REPO_NAME:-"master.ubuntu.xenial.main"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + elif [ "$DISTRIB_CODENAME" == "trusty" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.trusty.main/" + REPO=${REPO_NAME:-"master.ubuntu.trusty.main"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + else + echo "Distribution $DISTRIB_CODENAME is not supported" + exit -1 + fi + + echo "deb ${REPO_VPP_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list + echo "deb ${REPO_CICN_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.master.list + + elif [ "$DISTRIB_ID" == "CentOS" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.centos7/" + REPO=${REPO_NAME:-"master.centos7"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + + sudo cat << EOF > fdio.repo +[fdio-vpp-master] +name=fd.io master branch latest merge +baseurl=${REPO_VPP_URL} +enabled=1 +gpgcheck=0 + +[fdio-cicn-master] +name=fd.io master branch latest merge +baseurl=${REPO_CICN_URL} +enabled=1 +gpgcheck=0 +EOF + sudo mv fdio.repo /etc/yum.repos.d/fdio.repo + else + echo "Distribution $DISTRIB_CODENAME is not supported" + exit -1 + fi +} + +setup() { + + DISTRIB_ID=$1 + DISTRIB_CODENAME=$2 + + if [ "$DISTRIB_ID" == "Ubuntu" ]; then + if [ "$DISTRIB_CODENAME" == "trusty" ]; then + update_cmake_repo $DISTRIB_CODENAME + fi + + update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME + + sudo ${apt_get} update || true + + elif [ "$DISTRIB_ID" == "CentOS" ]; then + update_cmake_repo $DISTRIB_ID + update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME + fi +} + +# Parameters: +# $1 = Package name +# +build_package() { + + PACKAGE_NAME=$1 + + ARCHITECTURE=`uname -m` + + # Figure out what system we are running on + if [ -f /etc/lsb-release ];then + + . /etc/lsb-release + DEB=ON + RPM=OFF + + if [ "$ARCHITECTURE" == "x86_64" ]; then + ARCHITECTURE="amd64" + fi + + elif [ -f /etc/redhat-release ];then + + sudo yum install -y redhat-lsb + DISTRIB_ID=`lsb_release -si` + DISTRIB_RELEASE=`lsb_release -sr` + DISTRIB_CODENAME=`lsb_release -sc` + DISTRIB_DESCRIPTION=`lsb_release -sd` + + DEB=OFF + RPM=ON + else + echo "ERROR: System configuration not recognized. Build failed" + exit -1 + fi + + echo ARCHITECTURE: $ARCHITECTURE + echo DISTRIB_ID: $DISTRIB_ID + echo DISTRIB_RELEASE: $DISTRIB_RELEASE + echo DISTRIB_CODENAME: $DISTRIB_CODENAME + echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION + + setup $DISTRIB_ID $DISTRIB_CODENAME + + # Install package dependencies + if [ $DISTRIB_ID == "Ubuntu" ]; then + echo $BUILD_TOOLS_UBUNTU $DEPS_UBUNTU | xargs sudo ${apt_get} install -y --allow-unauthenticated + elif [ $DISTRIB_ID == "CentOS" ]; then + echo $BUILD_TOOLS_GROUP_CENTOS | xargs sudo yum groupinstall -y --nogpgcheck + echo $BUILD_TOOLS_SINGLE_CENTOS | xargs sudo yum install -y --nogpgcheck + echo $DEPS_CENTOS | xargs sudo yum install -y --nogpgcheck || true + fi + + # do nothing but print the current slave hostname + hostname + + # Make the package + mkdir -p build && pushd build + + rm -rf * + cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE .. + make package + + find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true + + popd + + echo "*******************************************************************" + echo "* $PACKAGE_NAME BUILD SUCCESSFULLY COMPLETED" + echo "*******************************************************************" + + exit 0 +} + +PACKAGE_NAME="LIBPARC" +PACKAGE_DEPS="LIBPARC_DEPS" +pushd .. +build_package $PACKAGE_NAME +popd diff --git a/libparc/scripts/version b/libparc/scripts/version new file mode 100644 index 00000000..ad4f8ece --- /dev/null +++ b/libparc/scripts/version @@ -0,0 +1,56 @@ +#!/bin/bash + +path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) +version_prefix="Libparc-v" + +cd "$path" + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + vstring=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//") +elif [ -f .version ]; then + vstring=$(cat .version) +else + if [ -f ../rpm/*.gz ]; then + vstring=$(ls ../rpm/*.gz) + else + exit 1 + fi +fi + +TAG=$(echo ${vstring} | cut -d- -f1 | sed -e "s/$version_prefix//") +ADD=$(echo ${vstring} | cut -s -d- -f2) + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + CMT=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//" | cut -s -d- -f3,4) +else + CMT=$(echo ${vstring} | cut -s -d- -f3,4) +fi +CMTR=$(echo $CMT | sed 's/-/_/') + +if [ -n "${BUILD_NUMBER}" ]; then + BLD="~b${BUILD_NUMBER}" +fi + +if [ -n "${BUILD_NUMBER}" ]; then + BLD="~b${BUILD_NUMBER}" +else + BLD="~b1" +fi + +if [ "$1" = "rpm-release" ]; then + [ -z "${ADD}" ] && echo release && exit + echo ${ADD}${CMTR:+~${CMTR}}${BLD} + exit +fi + + if [ -n "${ADD}" ]; then + if [ "$1" = "rpm-string" ]; then + echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD} + else + echo ${TAG}-${ADD}${CMT:+~${CMT}}${BLD} + fi + else + echo ${TAG}-release +fi \ No newline at end of file diff --git a/longbow/.gitignore b/longbow/.gitignore index bd57cd42..e1365556 100644 --- a/longbow/.gitignore +++ b/longbow/.gitignore @@ -1,6 +1,5 @@ build ======= -VERSION liblongbow*tar.gz lib bin diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 61572ba7..0a706dd9 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -3,9 +3,6 @@ project(LongBow) include( CTest ) -set(${CMAKE_PROJECT_NAME}_VERSION_MAJOR 1) -set(${CMAKE_PROJECT_NAME}_VERSION_MINOR 0) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_C_STANDARD 99) @@ -80,24 +77,26 @@ else() SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") SET(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") - SET(PACKAGE_VERSION "1.0" CACHE STRING "Version") - SET(BUILD_NUMBER "1" CACHE STRING "Build Number") STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) - SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") - SET(CPACK_PACKAGE_VERSION_MAJOR ${${CMAKE_PROJECT_NAME}_VERSION_MAJOR}) - SET(CPACK_PACKAGE_VERSION_MINOR ${${CMAKE_PROJECT_NAME}_VERSION_MINOR}) SET(CPACK_PACKAGE_VENDOR ${VENDOR}) SET(CPACK_PACKAGE_CONTACT ${CONTACT}) + # Get the version + execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version + OUTPUT_VARIABLE PACKAGE_VERSION) + string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) + if(DEB_PACKAGE) SET(TYPE "DEBIAN") SET(GENERATOR "DEB") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}~${DISTRIBUTION}_${ARCHITECTURE}") + SET(CPACK_${TYPE}_PACKAGE_DEPENDS "python (>= 2.7.0)") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}") elseif(RPM_PACKAGE) SET(TYPE "RPM") SET(GENERATOR "RPM") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${BUILD_NUMBER}.${DISTRIBUTION}.${ARCHITECTURE}") + SET(CPACK_${TYPE}_PACKAGE_REQUIRES "python >= 2.7.0") + SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}") SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") else() RETURN() @@ -110,10 +109,9 @@ else() SET(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) SET(CPACK_${TYPE}_PACKAGE_RELEASE 1) SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) - SET(CPACK_${TYPE}_PACKAGE_REQUIRES "python >= 2.7.0") SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") SET(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") INCLUDE(CPack) -endif() +endif() \ No newline at end of file diff --git a/longbow/scripts/build-package.sh b/longbow/scripts/build-package.sh new file mode 100644 index 00000000..3bd0ff42 --- /dev/null +++ b/longbow/scripts/build-package.sh @@ -0,0 +1,219 @@ +#!/bin/bash +# basic build script example +set -euxo pipefail +IFS=$'\n\t' + +APT_PATH=`which apt-get` || true +apt_get=${APT_PATH:-"/usr/local/bin/apt-get"} + +BUILD_TOOLS_UBUNTU="build-essential cmake" +LIBSSL_LIBEVENT_UBUNTU="libevent-dev libssl-dev" +DEPS_UBUNTU="" + +BUILD_TOOLS_GROUP_CENTOS="'Development Tools'" +BUILD_TOOLS_SINGLE_CENTOS="cmake" +LIBSSL_LIBEVENT_CENTOS="libevent-devel openssl-devel" +DEPS_CENTOS="" + +# Parameters: +# $1 = Distribution [Trusty / CentOS] +# +update_cmake_repo() { + + DISTRIBUTION=$1 + + if [ "$DISTRIBUTION" == "trusty" ]; then + sudo ${apt_get} install -y --allow-unauthenticated software-properties-common + sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x + elif [ "$DISTRIBUTION" == "CentOS" ]; then + sudo cat << EOF > cmake.repo +[cmake-repo] +name=Repo for cmake3 +baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/ +enabled=1 +gpgcheck=0 +EOF + sudo cat << EOF > jsoncpp.repo +[jsoncp-repo] +name=Repo for jsoncpp +baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/ +enabled=1 +gpgcheck=0 +EOF + sudo mv cmake.repo /etc/yum.repos.d/cmake.repo + sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo + fi +} + +# Parameters: +# $1 = Distribution codename +# +update_qt_repo() { + DISTRIBUTION_CODENAME=$1 + + if [ "$DISTRIBUTION_CODENAME" != "trusty" ] && [ "$DISTRIBUTION_CODENAME" != "xenial" ]; then + echo "No valid distribution specified when calling 'update_qt_repo'. Exiting.." + exit -1 + fi + + sudo ${apt_get} install -y --allow-unauthenticated software-properties-common + sudo add-apt-repository --yes ppa:beineri/opt-qt571-$DISTRIBUTION_CODENAME + + wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add - + sudo sh -c "echo 'deb http://archive.getdeb.net/ubuntu $DISTRIBUTION_CODENAME-getdeb apps' >> /etc/apt/sources.list.d/getdeb.list" + + sudo ${apt_get} update +} + +# Parameters: +# $1 = Distribution id +# $2 = Distribution codename +# +update_fdio_repo() { + DISTRIB_ID=$1 + DISTRIB_CODENAME=$2 + + NEXUS_PROXY=${NEXUSPROXY:-"http://nexus.fd.io"} + REPO_CICN_URL="" + REPO_VPP_URL="" + + if [ "$DISTRIB_ID" == "Ubuntu" ]; then + + if [ "$DISTRIB_CODENAME" == "xenial" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.xenial.main/" + REPO=${REPO_NAME:-"master.ubuntu.xenial.main"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + elif [ "$DISTRIB_CODENAME" == "trusty" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.trusty.main/" + REPO=${REPO_NAME:-"master.ubuntu.trusty.main"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + else + echo "Distribution $DISTRIB_CODENAME is not supported" + exit -1 + fi + + echo "deb ${REPO_VPP_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list + echo "deb ${REPO_CICN_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.master.list + + elif [ "$DISTRIB_ID" == "CentOS" ]; then + REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.centos7/" + REPO=${REPO_NAME:-"master.centos7"} + REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}" + + sudo cat << EOF > fdio.repo +[fdio-vpp-master] +name=fd.io master branch latest merge +baseurl=${REPO_VPP_URL} +enabled=1 +gpgcheck=0 + +[fdio-cicn-master] +name=fd.io master branch latest merge +baseurl=${REPO_CICN_URL} +enabled=1 +gpgcheck=0 +EOF + sudo mv fdio.repo /etc/yum.repos.d/fdio.repo + else + echo "Distribution $DISTRIB_CODENAME is not supported" + exit -1 + fi +} + +setup() { + + DISTRIB_ID=$1 + DISTRIB_CODENAME=$2 + + if [ "$DISTRIB_ID" == "Ubuntu" ]; then + if [ "$DISTRIB_CODENAME" == "trusty" ]; then + update_cmake_repo $DISTRIB_CODENAME + fi + + update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME + + sudo ${apt_get} update || true + + elif [ "$DISTRIB_ID" == "CentOS" ]; then + update_cmake_repo $DISTRIB_ID + update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME + fi +} + +# Parameters: +# $1 = Package name +# +build_package() { + + PACKAGE_NAME=$1 + + ARCHITECTURE=`uname -m` + + # Figure out what system we are running on + if [ -f /etc/lsb-release ];then + + . /etc/lsb-release + DEB=ON + RPM=OFF + + if [ "$ARCHITECTURE" == "x86_64" ]; then + ARCHITECTURE="amd64" + fi + + elif [ -f /etc/redhat-release ];then + + sudo yum install -y redhat-lsb + DISTRIB_ID=`lsb_release -si` + DISTRIB_RELEASE=`lsb_release -sr` + DISTRIB_CODENAME=`lsb_release -sc` + DISTRIB_DESCRIPTION=`lsb_release -sd` + + DEB=OFF + RPM=ON + else + echo "ERROR: System configuration not recognized. Build failed" + exit -1 + fi + + echo ARCHITECTURE: $ARCHITECTURE + echo DISTRIB_ID: $DISTRIB_ID + echo DISTRIB_RELEASE: $DISTRIB_RELEASE + echo DISTRIB_CODENAME: $DISTRIB_CODENAME + echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION + + setup $DISTRIB_ID $DISTRIB_CODENAME + + # Install package dependencies + if [ $DISTRIB_ID == "Ubuntu" ]; then + echo $BUILD_TOOLS_UBUNTU $DEPS_UBUNTU | xargs sudo ${apt_get} install -y --allow-unauthenticated + elif [ $DISTRIB_ID == "CentOS" ]; then + echo $BUILD_TOOLS_GROUP_CENTOS | xargs sudo yum groupinstall -y --nogpgcheck + echo $BUILD_TOOLS_SINGLE_CENTOS | xargs sudo yum install -y --nogpgcheck + echo $DEPS_CENTOS | xargs sudo yum install -y --nogpgcheck || true + fi + + # do nothing but print the current slave hostname + hostname + + # Make the package + mkdir -p build && pushd build + + rm -rf * + cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE .. + make package + + find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true + + popd + + echo "*******************************************************************" + echo "* $PACKAGE_NAME BUILD SUCCESSFULLY COMPLETED" + echo "*******************************************************************" + + exit 0 +} + +PACKAGE_NAME="LONGBOW" +pushd .. +build_package $PACKAGE_NAME +popd \ No newline at end of file diff --git a/longbow/scripts/version b/longbow/scripts/version new file mode 100644 index 00000000..fd6c6187 --- /dev/null +++ b/longbow/scripts/version @@ -0,0 +1,57 @@ +#!/bin/bash + +path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) +version_prefix="Longbow-v" + +cd "$path" + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + vstring=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//") +elif [ -f .version ]; then + vstring=$(cat .version) +else + if [ -f ../rpm/*.gz ]; then + vstring=$(ls ../rpm/*.gz) + else + exit 1 + fi +fi + +TAG=$(echo ${vstring} | cut -d- -f1 | sed -e "s/$version_prefix//") +ADD=$(echo ${vstring} | cut -s -d- -f2) + +git rev-parse 2> /dev/null +if [ $? == 0 ]; then + CMT=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//" | cut -s -d- -f3,4) +else + CMT=$(echo ${vstring} | cut -s -d- -f3,4) +fi +CMTR=$(echo $CMT | sed 's/-/_/') + +if [ -n "${BUILD_NUMBER}" ]; then + BLD="~b${BUILD_NUMBER}" +else + BLD="~b1" +fi + +if [ "$1" = "rpm-version" ]; then + echo ${TAG} + exit +fi + +if [ "$1" = "rpm-release" ]; then + [ -z "${ADD}" ] && echo release && exit + echo ${ADD}${CMTR:+~${CMTR}}${BLD} + exit +fi + + if [ -n "${ADD}" ]; then + if [ "$1" = "rpm-string" ]; then + echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD} + else + echo ${TAG}-${ADD}${CMT:+~${CMT}}${BLD} + fi + else + echo ${TAG}-release +fi \ No newline at end of file -- cgit 1.2.3-korg From 4ef7ffedebe7befce50dda3a27134f31597e4562 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 29 Apr 2017 14:51:20 +0200 Subject: Adding support for dev and doc packages. Change-Id: Ibb653a761186861b84460b1eb13f7e572a81a56b Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 99 +++++++++++++++++++++++------------- libparc/documentation/CMakeLists.txt | 8 +-- libparc/parc/CMakeLists.txt | 21 ++++---- libparc/scripts/build-package.sh | 55 ++++++-------------- 4 files changed, 94 insertions(+), 89 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 01079ee3..97058e77 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -77,47 +77,76 @@ add_subdirectory(documentation) option(DEB_PACKAGE "Create deb package" OFF) option(RPM_PACKAGE "Create deb package" OFF) -SET(VENDOR "Cisco Systems" CACHE STRING "Vendor") -SET(CONTACT "msardara@cisco.com" CACHE STRING "Contact") -SET(DISTRIBUTION "xenial" CACHE STRING "Distribution") -SET(ARCHITECTURE "amd64" CACHE STRING "Architecture") -SET(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") -SET(BUILD_NUMBER "1" CACHE STRING "Build Number") -STRING(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) - -SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr") -SET(CPACK_PACKAGE_VENDOR ${VENDOR}) -SET(CPACK_PACKAGE_CONTACT ${CONTACT}) +set(VENDOR "Cisco Systems" CACHE STRING "Vendor") +set(CONTACT "msardara@cisco.com" CACHE STRING "Contact") +set(DISTRIBUTION "xenial" CACHE STRING "Distribution") +set(ARCHITECTURE "amd64" CACHE STRING "Architecture") +set(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") +string(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) +set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") +set(CPACK_PACKAGE_VENDOR ${VENDOR}) +set(CPACK_PACKAGE_CONTACT ${CONTACT}) +set(CPACK_COMPONENTS_ALL library headers documentation) # Get the version execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version - OUTPUT_VARIABLE PACKAGE_VERSION) -string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) + OUTPUT_VARIABLE PACKAGE_VERSION) -if(DEB_PACKAGE) - SET(TYPE "DEBIAN") - SET(GENERATOR "DEB") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}") - SET(CPACK_${TYPE}_PACKAGE_DEPENDS "longbow (>= 1.0), libevent-2.0-5, libssl1.0.0") -elseif(RPM_PACKAGE) - SET(TYPE "RPM") - SET(GENERATOR "RPM") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}") - SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") - SET(CPACK_${TYPE}_PACKAGE_REQUIRES "longbow >= 1.0, libevent >= 2.0, openssl >= 1.0") +if (PACKAGE_VERSION) + string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) else() - RETURN() + set(PACKAGE_VERSION 1.0) endif() +if(DEB_PACKAGE) + set(TYPE "DEBIAN") + set(GENERATOR "DEB") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-dev") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + + set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") + set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0)") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") +elseif(RPM_PACKAGE) + set(TYPE "RPM") + set(GENERATOR "RPM") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-devel") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-devel-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) -SET(CPACK_GENERATOR ${GENERATOR}) -SET(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) -SET(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) -SET(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) -SET(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) -SET(CPACK_${TYPE}_PACKAGE_RELEASE 1) -SET(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) -SET(CPACK_${TYPE}_PACKAGE_DESCRIPTION "The PARC Library is a C runtime providing an array of features and capabilities for C programs and programmers.") -SET(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-dev >= 1.0") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") + + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") +else() + return() +endif() -INCLUDE(CPack) +set(CPACK_GENERATOR ${GENERATOR}) +set(CPACK_${GENERATOR}_COMPONENT_INSTALL ON) +set(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) +set(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) +set(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) +set(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) +set(CPACK_${TYPE}_PACKAGE_RELEASE 1) +set(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) +set(CPACK_${TYPE}_PACKAGE_DESCRIPTION "The PARC Library is a C runtime providing an array of features and capabilities for C programs and programmers.") +set(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") + +include(CPack) diff --git a/libparc/documentation/CMakeLists.txt b/libparc/documentation/CMakeLists.txt index ced2c4a1..8c567e74 100644 --- a/libparc/documentation/CMakeLists.txt +++ b/libparc/documentation/CMakeLists.txt @@ -5,10 +5,10 @@ if(DOXYGEN_FOUND) set(GITHUB_REMOTE http://github.com/PARC/Libparc) configure_file(libparc.doxygen.in config.doxygen @ONLY) - install(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/images) - install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/doxygen-extras) - install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/examples) - install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/) + install(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/images COMPONENT documentation) + install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/doxygen-extras COMPONENT documentation) + install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/examples COMPONENT documentation) + install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libparc/ COMPONENT documentation) set(HTML_PATH ${CMAKE_CURRENT_BINARY_DIR}/generated-documentation/html) diff --git a/libparc/parc/CMakeLists.txt b/libparc/parc/CMakeLists.txt index ea15d712..04abfac9 100644 --- a/libparc/parc/CMakeLists.txt +++ b/libparc/parc/CMakeLists.txt @@ -6,7 +6,6 @@ set(LIBPARC_BASE_HEADER_FILES libparc_About.h ) - set(LIBPARC_ALGOL_HEADER_FILES algol/parc_ArrayList.h algol/parc_AtomicInteger.h @@ -374,19 +373,19 @@ set(libparcLibraries ) foreach(lib ${libparcLibraries}) - install(TARGETS ${lib} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + install(TARGETS ${lib} COMPONENT library LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) set_property(TARGET ${lib} PROPERTY C_STANDARD 99) endforeach() -install(FILES ${LIBPARC_ALGOL_HEADER_FILES} DESTINATION include/parc/algol ) -install(FILES ${LIBPARC_SECURITY_HEADER_FILES} DESTINATION include/parc/security ) -install(FILES ${LIBPARC_LOGGING_HEADER_FILES} DESTINATION include/parc/logging ) -install(FILES ${LIBPARC_TESTING_HEADER_FILES} DESTINATION include/parc/testing ) -install(FILES ${LIBPARC_CONCURRENT_HEADER_FILES} DESTINATION include/parc/concurrent ) -install(FILES ${LIBPARC_DEVELOPER_HEADER_FILES} DESTINATION include/parc/developer ) -install(FILES ${LIBPARC_BASE_HEADER_FILES} DESTINATION include/parc ) -install(FILES ${LIBPARC_STATISTICS_HEADER_FILES} DESTINATION include/parc/statistics ) -install(FILES ${LIBPARC_MEMORY_HEADER_FILES} DESTINATION include/parc/memory ) +install(FILES ${LIBPARC_ALGOL_HEADER_FILES} DESTINATION include/parc/algol COMPONENT headers) +install(FILES ${LIBPARC_SECURITY_HEADER_FILES} DESTINATION include/parc/security COMPONENT headers) +install(FILES ${LIBPARC_LOGGING_HEADER_FILES} DESTINATION include/parc/logging COMPONENT headers) +install(FILES ${LIBPARC_TESTING_HEADER_FILES} DESTINATION include/parc/testing COMPONENT headers) +install(FILES ${LIBPARC_CONCURRENT_HEADER_FILES} DESTINATION include/parc/concurrent COMPONENT headers) +install(FILES ${LIBPARC_DEVELOPER_HEADER_FILES} DESTINATION include/parc/developer COMPONENT headers) +install(FILES ${LIBPARC_BASE_HEADER_FILES} DESTINATION include/parc COMPONENT headers) +install(FILES ${LIBPARC_STATISTICS_HEADER_FILES} DESTINATION include/parc/statistics COMPONENT headers) +install(FILES ${LIBPARC_MEMORY_HEADER_FILES} DESTINATION include/parc/memory COMPONENT headers) add_subdirectory(security/command-line) add_subdirectory(algol/test) diff --git a/libparc/scripts/build-package.sh b/libparc/scripts/build-package.sh index 0f0b8daa..102d05d1 100644 --- a/libparc/scripts/build-package.sh +++ b/libparc/scripts/build-package.sh @@ -7,43 +7,27 @@ SCRIPT_PATH=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) APT_PATH=`which apt-get` || true apt_get=${APT_PATH:-"/usr/local/bin/apt-get"} -BUILD_TOOLS_UBUNTU="build-essential cmake" +BUILD_TOOLS_UBUNTU="build-essential doxygen" LIBSSL_LIBEVENT_UBUNTU="libevent-dev libssl-dev" -DEPS_UBUNTU="longbow $LIBSSL_LIBEVENT_UBUNTU" +DEPS_UBUNTU="longbow-dev $LIBSSL_LIBEVENT_UBUNTU" BUILD_TOOLS_GROUP_CENTOS="'Development Tools'" -BUILD_TOOLS_SINGLE_CENTOS="cmake" LIBSSL_LIBEVENT_CENTOS="libevent-devel openssl-devel" -DEPS_CENTOS="longbow $LIBSSL_LIBEVENT_CENTOS" +DEPS_CENTOS="longbow-devel $LIBSSL_LIBEVENT_CENTOS" -# Parameters: -# $1 = Distribution [Trusty / CentOS] -# update_cmake_repo() { - DISTRIBUTION=$1 + cat /etc/resolv.conf + echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf + cat /etc/resolv.conf - if [ "$DISTRIBUTION" == "trusty" ]; then - sudo ${apt_get} install -y --allow-unauthenticated software-properties-common - sudo add-apt-repository --yes ppa:george-edison55/cmake-3.x - elif [ "$DISTRIBUTION" == "CentOS" ]; then - sudo cat << EOF > cmake.repo -[cmake-repo] -name=Repo for cmake3 -baseurl=http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/ -enabled=1 -gpgcheck=0 -EOF - sudo cat << EOF > jsoncpp.repo -[jsoncp-repo] -name=Repo for jsoncpp -baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64/ -enabled=1 -gpgcheck=0 -EOF - sudo mv cmake.repo /etc/yum.repos.d/cmake.repo - sudo mv jsoncpp.repo /etc/yum.repos.d/jsoncpp.repo - fi + CMAKE_INSTALL_SCRIPT_URL="https://cmake.org/files/v3.8/cmake-3.8.0-Linux-x86_64.sh" + CMAKE_INSTALL_SCRIPT="/tmp/install_cmake.sh" + curl ${CMAKE_INSTALL_SCRIPT_URL} > ${CMAKE_INSTALL_SCRIPT} + + sudo mkdir -p /opt/cmake + sudo bash ${CMAKE_INSTALL_SCRIPT} --skip-license --prefix=/opt/cmake + export PATH=/opt/cmake/bin:$PATH } # Parameters: @@ -126,18 +110,12 @@ setup() { DISTRIB_ID=$1 DISTRIB_CODENAME=$2 - if [ "$DISTRIB_ID" == "Ubuntu" ]; then - if [ "$DISTRIB_CODENAME" == "trusty" ]; then - update_cmake_repo $DISTRIB_CODENAME - fi + update_cmake_repo + update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME - update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME + if [ "$DISTRIB_ID" == "Ubuntu" ]; then sudo ${apt_get} update || true - - elif [ "$DISTRIB_ID" == "CentOS" ]; then - update_cmake_repo $DISTRIB_ID - update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME fi } @@ -189,7 +167,6 @@ build_package() { echo $BUILD_TOOLS_UBUNTU $DEPS_UBUNTU | xargs sudo ${apt_get} install -y --allow-unauthenticated elif [ $DISTRIB_ID == "CentOS" ]; then echo $BUILD_TOOLS_GROUP_CENTOS | xargs sudo yum groupinstall -y --nogpgcheck - echo $BUILD_TOOLS_SINGLE_CENTOS | xargs sudo yum install -y --nogpgcheck echo $DEPS_CENTOS | xargs sudo yum install -y --nogpgcheck || true fi -- cgit 1.2.3-korg From 44a186613c21f6a9b536ae959f4a81a5e8d73dd8 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 29 Apr 2017 17:44:58 +0200 Subject: Fix typo in package dependency Change-Id: I6cccc1962613278cf4eac7b46db39a15122c4106 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 97058e77..33a18f3a 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -130,7 +130,7 @@ elseif(RPM_PACKAGE) set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") - set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-dev >= 1.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0") set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") -- cgit 1.2.3-korg From 207c81969d360958762207c87f8bbbc510f263e1 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 29 Apr 2017 21:36:18 +0200 Subject: Adding misssing dependency Change-Id: Idf53e820c6ec8e70bd830b8c51a8597a8b9bb784 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 33a18f3a..ca5c5e10 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -112,8 +112,8 @@ if(DEB_PACKAGE) set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") - set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0)") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0), libevent-2.0-5, libssl1.0.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0), libevent-dev, libssl-dev") set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") elseif(RPM_PACKAGE) set(TYPE "RPM") @@ -129,8 +129,8 @@ elseif(RPM_PACKAGE) set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") - set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0, libevent >= 2.0, openssl >= 1.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0, libevent-devel, openssl-devel") set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") -- cgit 1.2.3-korg From c3cd37a462a2a2ae1fa3a98b10bb2a070a988af5 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 5 Jun 2017 15:06:32 +0200 Subject: - Adding support for iOS - Adding build type: DEBUG, RELEASE, RELEASE with debug symbols, RELEASE with min size executable Change-Id: I3a52af68445264824476eab3d9f39b6f23f634b4 Signed-off-by: Mauro Sardara --- libparc/.gitignore | 2 +- libparc/CMakeLists.txt | 42 +++++++-- libparc/parc/CMakeLists.txt | 57 +++++++----- longbow/.gitignore | 1 - longbow/CMakeLists.txt | 179 ++++++++++++++++++++----------------- longbow/src/LongBow/CMakeLists.txt | 84 ++++++++++------- 6 files changed, 220 insertions(+), 145 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/.gitignore b/libparc/.gitignore index 926b1a2c..9bdb2b73 100644 --- a/libparc/.gitignore +++ b/libparc/.gitignore @@ -61,7 +61,7 @@ parc/parcLibrary_About.c parc/parcLibrary_About.h parc/parc_About.c parc/parc_About.h -LDADD = ${INC_LFLAGS} +LDADD = ${INC_LFLAGS} libtool *~ diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index ca5c5e10..defa060a 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -6,6 +6,11 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) +if (NOT CMAKE_BUILD_TYPE) + message(STATUS "No build type selected, default to Release") + set(CMAKE_BUILD_TYPE "Release") +endif () + if( UNIX ) link_libraries(m) endif( UNIX ) @@ -18,28 +23,47 @@ if(ANDROID_API) message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") message("############ This build will not include doxygen, tools, or tests") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -Wall") +elseif(COMPILE_FOR_IOS) + message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") else() # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") # set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DPARCLibrary_DISABLE_VALIDATION") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -DNDEBUG -DPARCLibrary_DISABLE_VALIDATION") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") find_package( Doxygen ) endif() +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS} -DPARCLibrary_DISABLE_VALIDATION") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${CMAKE_C_FLAGS}") + include_directories($ENV{CCNX_DEPENDENCIES}/include) set(OPENSSL_ROOT_DIR $ENV{CCNX_DEPENDENCIES}) include_directories(${PROJECT_BINARY_DIR}/parc ${PROJECT_SOURCE_DIR}) -find_package( LongBow REQUIRED ) -include_directories(${LONGBOW_INCLUDE_DIRS}) +if(COMPILE_FOR_IOS) + find_host_package( LongBow REQUIRED ) + include_directories(${LONGBOW_INCLUDE_DIRS}) + + find_host_package( LibEvent REQUIRED ) + include_directories(${LIBEVENT_INCLUDE_DIRS}) -find_package( LibEvent REQUIRED ) -include_directories(${LIBEVENT_INCLUDE_DIRS}) + find_host_package ( OpenSSL REQUIRED ) +else() + find_package( LongBow REQUIRED ) + include_directories(${LONGBOW_INCLUDE_DIRS}) + + find_package( LibEvent REQUIRED ) + include_directories(${LIBEVENT_INCLUDE_DIRS}) -find_package ( Threads REQUIRED ) + find_package ( Threads REQUIRED ) -find_package ( OpenSSL REQUIRED ) + find_package ( OpenSSL REQUIRED ) +endif() set(PARC_BIN_LIBRARIES parc @@ -59,6 +83,10 @@ if (ANDROID_API) macro(AddTest testFile) message("Android build: Skipping test ${ARGV0}") endmacro(AddTest) +elseif(COMPILE_FOR_IOS) + macro(AddTest testFile) + message("iOS build: Skipping test ${ARGV0}") + endmacro(AddTest) else() macro(AddTest testFile) add_executable(${ARGV0} ${ARGV0}.c) diff --git a/libparc/parc/CMakeLists.txt b/libparc/parc/CMakeLists.txt index 04abfac9..09b73e17 100644 --- a/libparc/parc/CMakeLists.txt +++ b/libparc/parc/CMakeLists.txt @@ -352,25 +352,34 @@ source_group(testing FILES ${LIBPARC_TESTING_SOURCE_FILES} ${LIBPARC_TESTING_HEA source_group(statistics FILES ${LIBPARC_STATISTICS_SOURCE_FILES} ${LIBPARC_STATISTICS_HEADER_FILES}) source_group(memory FILES ${LIBPARC_MEMORY_SOURCE_FILES} ${LIBPARC_MEMORY_HEADER_FILES}) -if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang" OR COMPILE_FOR_IOS) set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup") message( "-- Set \"-undefined dynamic_lookup\" for shared libraries") endif() +if(COMPILE_FOR_IOS OR ANDROID_API) + add_library(parc STATIC ${LIBPARC_SOURCE_FILES} ${LIBEVENT_LIBRARIES} ${OPENSSL_LIBRARIES}) + target_link_libraries(parc ${LIBEVENT_LIBRARIES}) + target_link_libraries(parc ${OPENSSL_LIBRARIES}) + set(libparcLibraries + parc + ) +else() + add_library(parc STATIC ${LIBPARC_SOURCE_FILES}) + add_library(parc.shared SHARED ${LIBPARC_SOURCE_FILES}) + target_link_libraries(parc.shared ${LIBEVENT_LIBRARIES}) + target_link_libraries(parc.shared ${OPENSSL_LIBRARIES}) + set_target_properties(parc.shared PROPERTIES + C_STANDARD 99 + SOVERSION 1 + VERSION 1.0 + OUTPUT_NAME parc ) + set(libparcLibraries + parc + parc.shared + ) -add_library(parc STATIC ${LIBPARC_SOURCE_FILES}) -add_library(parc.shared SHARED ${LIBPARC_SOURCE_FILES}) -target_link_libraries(parc.shared ${LIBEVENT_LIBRARIES}) -target_link_libraries(parc.shared ${OPENSSL_LIBRARIES}) -set_target_properties(parc.shared PROPERTIES - C_STANDARD 99 - SOVERSION 1 - VERSION 1.0 - OUTPUT_NAME parc ) +endif() -set(libparcLibraries - parc - parc.shared - ) foreach(lib ${libparcLibraries}) install(TARGETS ${lib} COMPONENT library LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) @@ -387,12 +396,14 @@ install(FILES ${LIBPARC_BASE_HEADER_FILES} DESTINATION include/parc COMPON install(FILES ${LIBPARC_STATISTICS_HEADER_FILES} DESTINATION include/parc/statistics COMPONENT headers) install(FILES ${LIBPARC_MEMORY_HEADER_FILES} DESTINATION include/parc/memory COMPONENT headers) -add_subdirectory(security/command-line) -add_subdirectory(algol/test) -add_subdirectory(concurrent/test) -add_subdirectory(developer/test) -add_subdirectory(security/test) -add_subdirectory(logging/test) -add_subdirectory(testing/test) -add_subdirectory(statistics/test) -add_subdirectory(memory/test) +if(NOT COMPILE_FOR_IOS) + add_subdirectory(security/command-line) + add_subdirectory(algol/test) + add_subdirectory(concurrent/test) + add_subdirectory(developer/test) + add_subdirectory(security/test) + add_subdirectory(logging/test) + add_subdirectory(testing/test) + add_subdirectory(statistics/test) + add_subdirectory(memory/test) +endif() diff --git a/longbow/.gitignore b/longbow/.gitignore index e1365556..2a963e9c 100644 --- a/longbow/.gitignore +++ b/longbow/.gitignore @@ -27,5 +27,4 @@ Makefile *.swp libtool *~ -*.pyc .idea diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 07c743c7..20fc9c0b 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -8,6 +8,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) +if (NOT CMAKE_BUILD_TYPE) + message(STATUS "No build type selected, default to Release") + set(CMAKE_BUILD_TYPE "Release") +endif () + set_property(GLOBAL PROPERTY USE_FOLDERS ON) execute_process(COMMAND ${PROJECT_SOURCE_DIR}/cmake/get_version.sh ${PROJECT_SOURCE_DIR} @@ -54,9 +59,17 @@ if(ANDROID_API) message("Android build: Skipping test ${ARGV0}") endmacro(AddTest) + add_subdirectory(src) +elseif(COMPILE_FOR_IOS) + message("############ Detected cross compile for ${CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + macro(AddTest testFile) + message("IOS build: Skipping test ${ARGV0}") + endmacro(AddTest) add_subdirectory(src) else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -D_GNU_SOURCE") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE") macro(AddTest testFile) add_executable(${ARGV0} ${ARGV0}.c) target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) @@ -66,84 +79,88 @@ else() add_subdirectory(src) add_subdirectory(documentation) +endif() + +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") + +# Generate DEB / RPM packages + +option(DEB_PACKAGE "Create deb package" OFF) +option(RPM_PACKAGE "Create deb package" OFF) + +set(VENDOR "Cisco Systems" CACHE STRING "Vendor") +set(CONTACT "msardara@cisco.com" CACHE STRING "Contact") +set(DISTRIBUTION "xenial" CACHE STRING "Distribution") +set(ARCHITECTURE "amd64" CACHE STRING "Architecture") +set(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") +string(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) +set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") +set(CPACK_PACKAGE_VENDOR ${VENDOR}) +set(CPACK_PACKAGE_CONTACT ${CONTACT}) +set(CPACK_COMPONENTS_ALL library headers documentation) + +# Get the version +execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version + OUTPUT_VARIABLE PACKAGE_VERSION) + +if (PACKAGE_VERSION) + string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) +else() + set(PACKAGE_VERSION 1.0) +endif() + +if(DEB_PACKAGE) + set(TYPE "DEBIAN") + set(GENERATOR "DEB") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-dev") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + + set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "python (>= 2.7.0)") + set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "longbow (>= 1.0)") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") +elseif(RPM_PACKAGE) + set(TYPE "RPM") + set(GENERATOR "RPM") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-devel") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-devel-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) + + set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "python >= 2.7.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "longbow >= 1.0") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") + + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") +else() + return() +endif() - # Generate DEB / RPM packages - - option(DEB_PACKAGE "Create deb package" OFF) - option(RPM_PACKAGE "Create deb package" OFF) - - set(VENDOR "Cisco Systems" CACHE STRING "Vendor") - set(CONTACT "msardara@cisco.com" CACHE STRING "Contact") - set(DISTRIBUTION "xenial" CACHE STRING "Distribution") - set(ARCHITECTURE "amd64" CACHE STRING "Architecture") - set(PACKAGE_MAINTAINER "Mauro Sardara (msardara@cisco.com)" CACHE STRING "Maintainer") - string(TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME) - set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") - set(CPACK_PACKAGE_VENDOR ${VENDOR}) - set(CPACK_PACKAGE_CONTACT ${CONTACT}) - set(CPACK_COMPONENTS_ALL library headers documentation) - - # Get the version - execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version - OUTPUT_VARIABLE PACKAGE_VERSION) - - if (PACKAGE_VERSION) - string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION) - else() - set(PACKAGE_VERSION 1.0) - endif() - - if(DEB_PACKAGE) - set(TYPE "DEBIAN") - set(GENERATOR "DEB") - - set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") - set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-dev") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") - - set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - - set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) - - set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "python (>= 2.7.0)") - set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "longbow (>= 1.0)") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") - elseif(RPM_PACKAGE) - set(TYPE "RPM") - set(GENERATOR "RPM") - - set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") - set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-devel") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") - - set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-devel-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - - set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) - - set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "python >= 2.7.0") - set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "longbow >= 1.0") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") - - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") - else() - return() - endif() - - set(CPACK_GENERATOR ${GENERATOR}) - set(CPACK_${GENERATOR}_COMPONENT_INSTALL ON) - set(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) - set(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) - set(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) - set(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) - set(CPACK_${TYPE}_PACKAGE_RELEASE 1) - set(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) - set(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") - set(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") - - include(CPack) - -endif() \ No newline at end of file +set(CPACK_GENERATOR ${GENERATOR}) +set(CPACK_${GENERATOR}_COMPONENT_INSTALL ON) +set(CPACK_${TYPE}_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) +set(CPACK_${TYPE}_PACKAGE_NAME ${PACKAGE_NAME}) +set(CPACK_${TYPE}_PACKAGE_VERSION ${PACKAGE_VERSION}) +set(CPACK_${TYPE}_PACKAGE_ARCHITECTURE ${ARCHITECTURE}) +set(CPACK_${TYPE}_PACKAGE_RELEASE 1) +set(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) +set(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") +set(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") + +include(CPack) \ No newline at end of file diff --git a/longbow/src/LongBow/CMakeLists.txt b/longbow/src/LongBow/CMakeLists.txt index 27efc12c..f8054b8d 100644 --- a/longbow/src/LongBow/CMakeLists.txt +++ b/longbow/src/LongBow/CMakeLists.txt @@ -106,7 +106,7 @@ set(LIBLONGBOW_SOURCE_FILES longBow_SubProcess.c longBow_TestCase.c longBow_TestCaseClipBoard.c - longBow_TestCaseMetaData.c + longBow_TestCaseMetaData.c longBow_TestFixture.c longBow_TestFixtureConfig.c longBow_TestRunner.c @@ -115,50 +115,67 @@ set(LIBLONGBOW_SOURCE_FILES source_group(longbow FILES ${LIBLONGBOW_SOURCE_FILES}) -if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang" OR COMPILE_FOR_IOS ) set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup") message( "-- Set \"-undefined dynamic_lookup\" for shared libraries") endif() -add_library(longbow-ansiterm STATIC ${LONGBOW_REPORT_ANSI_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) -add_library(longbow-ansiterm.shared SHARED ${LONGBOW_REPORT_ANSI_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) +if(COMPILE_FOR_IOS OR ANDROID_API) + add_library(longbow-ansiterm STATIC ${LONGBOW_REPORT_ANSI_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) -set_target_properties(longbow-ansiterm.shared PROPERTIES - SOVERSION 1 - VERSION 1.0 - OUTPUT_NAME longbow-ansiterm) + add_library(longbow-textplain STATIC ${LONGBOW_REPORT_TEXT_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) + add_library(longbow STATIC ${LIBLONGBOW_SOURCE_FILES}) -add_library(longbow-textplain STATIC ${LONGBOW_REPORT_TEXT_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) -add_library(longbow-textplain.shared SHARED ${LONGBOW_REPORT_TEXT_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) + set(longbowLibraries + longbow + longbow-ansiterm + longbow-textplain + ) -set_target_properties(longbow-textplain.shared PROPERTIES - SOVERSION 1 - VERSION 1.0 - OUTPUT_NAME longbow-textplain) + foreach(lib ${longbowLibraries}) + install(TARGETS ${lib} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + endforeach() +else() + add_library(longbow-ansiterm STATIC ${LONGBOW_REPORT_ANSI_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) + add_library(longbow-ansiterm.shared SHARED ${LONGBOW_REPORT_ANSI_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) -add_library(longbow STATIC ${LIBLONGBOW_SOURCE_FILES}) -add_library(longbow.shared SHARED ${LIBLONGBOW_SOURCE_FILES}) + set_target_properties(longbow-ansiterm.shared PROPERTIES + SOVERSION 1 + VERSION 1.0 + OUTPUT_NAME longbow-ansiterm) -set_target_properties(longbow.shared PROPERTIES - SOVERSION 1 - VERSION 1.0 - OUTPUT_NAME longbow) + add_library(longbow-textplain STATIC ${LONGBOW_REPORT_TEXT_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) + add_library(longbow-textplain.shared SHARED ${LONGBOW_REPORT_TEXT_SOURCE_FILES} ${LONGBOW_REPORT_BASE_SOURCE_FILES}) -add_executable(longbow-config ${LONGBOW_CONFIG_SOURCE_FILES}) + set_target_properties(longbow-textplain.shared PROPERTIES + SOVERSION 1 + VERSION 1.0 + OUTPUT_NAME longbow-textplain) + add_library(longbow STATIC ${LIBLONGBOW_SOURCE_FILES}) + add_library(longbow.shared SHARED ${LIBLONGBOW_SOURCE_FILES}) -set(longbowLibraries - longbow - longbow.shared - longbow-ansiterm - longbow-ansiterm.shared - longbow-textplain - longbow-textplain.shared - ) + set_target_properties(longbow.shared PROPERTIES + SOVERSION 1 + VERSION 1.0 + OUTPUT_NAME longbow) + + add_executable(longbow-config ${LONGBOW_CONFIG_SOURCE_FILES}) + + set(longbowLibraries + longbow + longbow.shared + longbow-ansiterm + longbow-ansiterm.shared + longbow-textplain + longbow-textplain.shared + ) -foreach(lib ${longbowLibraries}) - install(TARGETS ${lib} COMPONENT library LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -endforeach() + foreach(lib ${longbowLibraries}) + install(TARGETS ${lib} COMPONENT library LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + endforeach() + +endif() install(FILES ${LIBLONGBOW_HEADER_FILES} DESTINATION include/LongBow COMPONENT headers) install(FILES ${LONGBOW_REPORT_HEADER_FILES} DESTINATION include/LongBow/Reporting COMPONENT headers) @@ -166,6 +183,9 @@ install(FILES ${LONGBOW_REPORT_HEADER_FILES} DESTINATION include/LongBow/Reporti if(ANDROID_API) message("############ Detected cross compile for ${CMAKE_SYSTEM_NAME}") message("############ This build will not include doxygen, tools, or tests") +elseif(COMPILE_FOR_IOS) + message("############ Detected cross compile for ${CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") else() add_subdirectory(test) endif() -- cgit 1.2.3-korg From 49ff69a0c3f33b03b2ebaac9098d6e8c88a5e8b6 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 17 Oct 2017 15:17:50 +0200 Subject: Removing LongBow asserts in release build. Change-Id: Ia554a5f2bbf6e226652b93dfb6ae2a9f072003cc Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 4 ++-- longbow/CMakeLists.txt | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index defa060a..b3ebc2aa 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -35,7 +35,7 @@ else() endif() set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS} -DPARCLibrary_DISABLE_VALIDATION") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS} -DPARCLibrary_DISABLE_VALIDATION -DLongBow_DISABLE_ASSERTIONS") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${CMAKE_C_FLAGS}") @@ -84,7 +84,7 @@ if (ANDROID_API) message("Android build: Skipping test ${ARGV0}") endmacro(AddTest) elseif(COMPILE_FOR_IOS) - macro(AddTest testFile) + macro(AddTest testFile) message("iOS build: Skipping test ${ARGV0}") endmacro(AddTest) else() diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 20fc9c0b..ac34f8b5 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -64,12 +64,25 @@ elseif(COMPILE_FOR_IOS) message("############ Detected cross compile for ${CMAKE_SYSTEM_NAME}") message("############ This build will not include doxygen, tools, or tests") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS} -DLongBow_DISABLE_ASSERTIONS") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") + macro(AddTest testFile) message("IOS build: Skipping test ${ARGV0}") endmacro(AddTest) add_subdirectory(src) else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE") + + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS} -DLongBow_DISABLE_ASSERTIONS") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") + macro(AddTest testFile) add_executable(${ARGV0} ${ARGV0}.c) target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) @@ -81,11 +94,6 @@ else() add_subdirectory(documentation) endif() -set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS}") - # Generate DEB / RPM packages option(DEB_PACKAGE "Create deb package" OFF) @@ -163,4 +171,4 @@ set(CPACK_${TYPE}_PACKAGE_VENDOR ${VENDOR}) set(CPACK_${TYPE}_PACKAGE_DESCRIPTION "Runtime and testing framework for C applications.") set(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") -include(CPack) \ No newline at end of file +include(CPack) -- cgit 1.2.3-korg From 862f39e2fb3eafc7b71340b6e28ca1d80be0fe42 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 2 Feb 2018 16:55:04 +0100 Subject: Fix libparc deps Change-Id: I6015766a6ee213366f34e564cffd5c85bbac5025 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index b3ebc2aa..3712c656 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -140,7 +140,7 @@ if(DEB_PACKAGE) set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0), libevent-2.0-5, libssl1.0.0") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0), libevent-dev, libssl-dev") set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") elseif(RPM_PACKAGE) -- cgit 1.2.3-korg From a79038f9b4fa44c3e179b5fd449c267fd6c84eea Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 2 Feb 2018 17:44:43 +0100 Subject: Removed useless dependencies from libparc Change-Id: Ie1b3af67cc984873bfe86bdb9c3a9ca3b8e1c336 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 3712c656..3c3fa956 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -157,7 +157,7 @@ elseif(RPM_PACKAGE) set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0, libevent >= 2.0, openssl >= 1.0") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0, libevent-devel, openssl-devel") set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") -- cgit 1.2.3-korg From a26778c12e24217e752fec70b659452a76883824 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 27 Feb 2018 10:56:31 +0100 Subject: Added option in CMakeLists in order to avoid the dependencies check when building the documentation. Change-Id: I39db72a5e68815b35e584d705f86518409f5abe6 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 3c3fa956..871cb1bd 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -3,6 +3,8 @@ project(Libparc) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set_property(GLOBAL PROPERTY USE_FOLDERS ON) +option(DOC_ONLY "Build documentation only" OFF) + set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) @@ -44,7 +46,9 @@ set(OPENSSL_ROOT_DIR $ENV{CCNX_DEPENDENCIES}) include_directories(${PROJECT_BINARY_DIR}/parc ${PROJECT_SOURCE_DIR}) -if(COMPILE_FOR_IOS) +if (DOC_ONLY) + message("############ Skipping check of required dependencies.") +elseif(COMPILE_FOR_IOS) find_host_package( LongBow REQUIRED ) include_directories(${LONGBOW_INCLUDE_DIRS}) @@ -62,7 +66,6 @@ else() find_package ( Threads REQUIRED ) find_package ( OpenSSL REQUIRED ) - endif() set(PARC_BIN_LIBRARIES -- cgit 1.2.3-korg From 8038cdef20bc99cf53e827395e5a74463757e465 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 27 Feb 2018 18:03:29 +0100 Subject: Minor fixes Change-Id: I3bd8e4671e4548ddb31f02c0427364f4839b79ea Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 94 +++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 871cb1bd..39c83c5c 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -22,18 +22,18 @@ include( version ) include( detectCacheSize ) if(ANDROID_API) - message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") - message("############ This build will not include doxygen, tools, or tests") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -Wall") + message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -Wall") elseif(COMPILE_FOR_IOS) - message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") - message("############ This build will not include doxygen, tools, or tests") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") + message("############ This build will not include doxygen, tools, or tests") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") else() # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") # set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DPARCLibrary_DISABLE_VALIDATION") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - find_package( Doxygen ) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + find_package( Doxygen ) endif() set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") @@ -83,21 +83,21 @@ add_custom_target(${PROJECT_NAME}_cleanup_profiling_data WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Cleanup previous profiling data.") if (ANDROID_API) - macro(AddTest testFile) - message("Android build: Skipping test ${ARGV0}") - endmacro(AddTest) + macro(AddTest testFile) + message("Android build: Skipping test ${ARGV0}") + endmacro(AddTest) elseif(COMPILE_FOR_IOS) - macro(AddTest testFile) - message("iOS build: Skipping test ${ARGV0}") - endmacro(AddTest) + macro(AddTest testFile) + message("iOS build: Skipping test ${ARGV0}") + endmacro(AddTest) else() - macro(AddTest testFile) - add_executable(${ARGV0} ${ARGV0}.c) - target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) - add_test(NAME ${ARGV0} COMMAND ${ARGV0}) - set_target_properties(${ARGV0} PROPERTIES FOLDER Test) - add_dependencies(${ARGV0} ${PROJECT_NAME}_cleanup_profiling_data) - endmacro(AddTest) + macro(AddTest testFile) + add_executable(${ARGV0} ${ARGV0}.c) + target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) + add_test(NAME ${ARGV0} COMMAND ${ARGV0}) + set_target_properties(${ARGV0} PROPERTIES FOLDER Test) + add_dependencies(${ARGV0} ${PROJECT_NAME}_cleanup_profiling_data) + endmacro(AddTest) endif() add_subdirectory(parc) @@ -130,43 +130,43 @@ else() endif() if(DEB_PACKAGE) - set(TYPE "DEBIAN") - set(GENERATOR "DEB") + set(TYPE "DEBIAN") + set(GENERATOR "DEB") - set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") - set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-dev") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-dev") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") - set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") - set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0), libevent-dev, libssl-dev") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") + set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0), libevent-dev, libssl-dev") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_DEPENDS "") elseif(RPM_PACKAGE) - set(TYPE "RPM") - set(GENERATOR "RPM") + set(TYPE "RPM") + set(GENERATOR "RPM") - set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") - set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-devel") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_NAME "${PACKAGE_NAME}") + set(CPACK_${TYPE}_HEADERS_PACKAGE_NAME "${PACKAGE_NAME}-devel") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_NAME "${PACKAGE_NAME}-doc") - set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-devel-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_LIBRARY_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-devel-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") + set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc-${PACKAGE_VERSION}.${ARCHITECTURE}.rpm") - set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) + set(CPACK_${TYPE}_LIBRARY_PACKAGE_AUTOREQ ON) - set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") - set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0, libevent-devel, openssl-devel") - set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") + set(CPACK_${TYPE}_LIBRARY_PACKAGE_REQUIRES "longbow >= 1.0") + set(CPACK_${TYPE}_HEADERS_PACKAGE_REQUIRES "libparc >= 1.0, longbow-devel >= 1.0, libevent-devel, openssl-devel") + set(CPACK_${TYPE}_DOCUMENTATION_PACKAGE_REQUIRES "") - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/etc" "/usr/lib/python2.7" "/usr/lib/python2.7/site-packages") else() - return() + return() endif() set(CPACK_GENERATOR ${GENERATOR}) -- cgit 1.2.3-korg From 2f628712c24ada33f056c76f7648a6aa939b7b80 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 5 Mar 2018 16:23:47 +0100 Subject: Trigger build of documentation Change-Id: I600b976af14ac04c5d54fc0b89ba5c61848d0e98 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 39c83c5c..0831be64 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -13,13 +13,13 @@ if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif () -if( UNIX ) +if(UNIX) link_libraries(m) -endif( UNIX ) +endif(UNIX) -include( CTest ) -include( version ) -include( detectCacheSize ) +include(CTest) +include(version) +include(detectCacheSize) if(ANDROID_API) message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") -- cgit 1.2.3-korg From 721ebf050683b88dd4d773d9db01740a5ca82ae5 Mon Sep 17 00:00:00 2001 From: Angelo Mantellini Date: Mon, 19 Mar 2018 14:50:59 +0100 Subject: include openssl folder Change-Id: I3b6446c4755312761d23b88be1ef7fb9808815a1 Signed-off-by: Angelo Mantellini --- README.md | 1 + libparc/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) (limited to 'libparc/CMakeLists.txt') diff --git a/README.md b/README.md index fcbc08ba..f42e228b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ + # Introduction The git repository structure is described in this file. It can also be derived by scanning the repo itself. The master branch is read only and contains this diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index 0831be64..da97486f 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -66,6 +66,7 @@ else() find_package ( Threads REQUIRED ) find_package ( OpenSSL REQUIRED ) + include_directories(${OPENSSL_INCLUDE_DIR}) endif() set(PARC_BIN_LIBRARIES -- cgit 1.2.3-korg From adc4d3fc494a4349349921dc55ef7f246e7bfcf3 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 12 Jun 2018 13:14:03 +0200 Subject: Remove automatic dependency resolution when building libparc deb package Change-Id: I001e79a954c7c46548531a0b44942ff0f2bffcfe Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index da97486f..a600d2d3 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -142,7 +142,7 @@ if(DEB_PACKAGE) set(CPACK_${TYPE}_HEADERS_FILE_NAME "${PACKAGE_NAME}-dev_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") set(CPACK_${TYPE}_DOCUMENTATION_FILE_NAME "${PACKAGE_NAME}-doc_${PACKAGE_VERSION}_${ARCHITECTURE}.deb") - set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) +# set(CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS ON) set(CPACK_${TYPE}_LIBRARY_PACKAGE_DEPENDS "longbow (>= 1.0)") set(CPACK_${TYPE}_HEADERS_PACKAGE_DEPENDS "libparc (>= 1.0), longbow-dev (>= 1.0), libevent-dev, libssl-dev") -- cgit 1.2.3-korg From ede6ab9cf3ecaf1745ae9218e5ad62fed9161383 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 19 Jun 2018 13:53:14 +0200 Subject: Adding precompilation check for libc realloc function. Change-Id: I328e45cd6eddbfd2af0e3f2098992dbf3bca74e9 Signed-off-by: Mauro Sardara --- libparc/CMakeLists.txt | 1 + libparc/cmake/Modules/CheckRealloc.cmake | 16 ++++++++++++++++ libparc/cmake/Modules/FindLibEvent.cmake | 13 +++++++++++++ libparc/cmake/Modules/FindLongBow.cmake | 13 +++++++++++++ libparc/cmake/Modules/FindUncrustify.cmake | 13 +++++++++++++ libparc/cmake/Modules/detectCacheSize.cmake | 13 +++++++++++++ libparc/cmake/Modules/version.cmake | 13 +++++++++++++ libparc/parc/config.h.in | 2 ++ 8 files changed, 84 insertions(+) create mode 100644 libparc/cmake/Modules/CheckRealloc.cmake (limited to 'libparc/CMakeLists.txt') diff --git a/libparc/CMakeLists.txt b/libparc/CMakeLists.txt index a600d2d3..3db7bfa4 100644 --- a/libparc/CMakeLists.txt +++ b/libparc/CMakeLists.txt @@ -20,6 +20,7 @@ endif(UNIX) include(CTest) include(version) include(detectCacheSize) +include(CheckRealloc) if(ANDROID_API) message("############ Detected cross compile for $ENV{CMAKE_SYSTEM_NAME}") diff --git a/libparc/cmake/Modules/CheckRealloc.cmake b/libparc/cmake/Modules/CheckRealloc.cmake new file mode 100644 index 00000000..191629e9 --- /dev/null +++ b/libparc/cmake/Modules/CheckRealloc.cmake @@ -0,0 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +include(CheckFunctionExists) + +CHECK_FUNCTION_EXISTS(realloc HAVE_REALLOC) \ No newline at end of file diff --git a/libparc/cmake/Modules/FindLibEvent.cmake b/libparc/cmake/Modules/FindLibEvent.cmake index 2d1ca4fe..28a00eb2 100644 --- a/libparc/cmake/Modules/FindLibEvent.cmake +++ b/libparc/cmake/Modules/FindLibEvent.cmake @@ -1,3 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + ######################################## # # Find the LibEvent libraries and includes diff --git a/libparc/cmake/Modules/FindLongBow.cmake b/libparc/cmake/Modules/FindLongBow.cmake index e35888eb..38aef580 100644 --- a/libparc/cmake/Modules/FindLongBow.cmake +++ b/libparc/cmake/Modules/FindLongBow.cmake @@ -1,3 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + ######################################## # # Find the LongBow libraries and includes diff --git a/libparc/cmake/Modules/FindUncrustify.cmake b/libparc/cmake/Modules/FindUncrustify.cmake index e53f65fe..00d0061f 100644 --- a/libparc/cmake/Modules/FindUncrustify.cmake +++ b/libparc/cmake/Modules/FindUncrustify.cmake @@ -1,3 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Find uncrustify program # find_program( UNCRUSTIFY_BIN uncrustify diff --git a/libparc/cmake/Modules/detectCacheSize.cmake b/libparc/cmake/Modules/detectCacheSize.cmake index 1796910a..0544c455 100644 --- a/libparc/cmake/Modules/detectCacheSize.cmake +++ b/libparc/cmake/Modules/detectCacheSize.cmake @@ -1,3 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Detect the cache size # # XXX: TODO: This is a bug when cross compiling. We are detecting the local diff --git a/libparc/cmake/Modules/version.cmake b/libparc/cmake/Modules/version.cmake index 74831674..120df2d0 100644 --- a/libparc/cmake/Modules/version.cmake +++ b/libparc/cmake/Modules/version.cmake @@ -1,3 +1,16 @@ +# Copyright (c) 2017 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # # Get a version to pass on the command line # diff --git a/libparc/parc/config.h.in b/libparc/parc/config.h.in index 5d047cfc..868c03ca 100644 --- a/libparc/parc/config.h.in +++ b/libparc/parc/config.h.in @@ -2,3 +2,5 @@ #define LEVEL1_DCACHE_LINESIZE @LEVEL1_DCACHE_LINESIZE@ #define _GNU_SOURCE + +#define HAVE_REALLOC @HAVE_REALLOC@ \ No newline at end of file -- cgit 1.2.3-korg