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 --- longbow/CMakeLists.txt | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 longbow/CMakeLists.txt (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt new file mode 100644 index 00000000..46c9fd9f --- /dev/null +++ b/longbow/CMakeLists.txt @@ -0,0 +1,73 @@ +cmake_minimum_required(VERSION 3.2) +project(LongBow) + +include( CTest ) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") + +set(CMAKE_C_STANDARD 99) +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 + OUTPUT_STRIP_TRAILING_WHITESPACE) + +execute_process(COMMAND date -u +%Y-%m-%dT%H:%M:%SZ + OUTPUT_VARIABLE ISO_DATE + OUTPUT_STRIP_TRAILING_WHITESPACE) + +MESSAGE( STATUS "Configuring version ${RELEASE_VERSION}" ) + +add_definitions("-DRELEASE_VERSION=\"${RELEASE_VERSION}\"") +#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3") + +#set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DLongBow_DISABLE_ASSERTIONS") + + +find_package( Doxygen ) +find_package( Uncrustify ) +find_package( PythonInterp ) + +set( DEPENDENCY_DIR $ENV{CCNX_DEPENDENCIES} ) +if( NOT DEPENDENCY_DIR ) + set( DEPENDENCY_DIR /usr ) +endif() + +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( VERSION ${RELEASE_VERSION} ) +set( DATE ${ISO_DATE} ) +set( UNCRUSTIFY_BIN ${UNCRUSTIFY_BIN} ) +set( UNCRUSTIFY_CONFIG ${CMAKE_INSTALL_PREFIX}/etc/parc_uncrustify.cfg ) + +message( "-- Install Python Dir: ${INSTALL_PYTHON_DIR}") +message( "-- Dependency Python Dir: ${DEPENDENCY_DIR}/etc/site-packages") +include_directories(${PROJECT_BINARY_DIR}/src/LongBow ${PROJECT_SOURCE_DIR}/src) + +if(ANDROID_API) + 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} ${ANDROID_C_FLAGS} -Wall") + + macro(AddTest testFile) + message("Android build: Skipping test ${ARGV0}") + endmacro(AddTest) + + add_subdirectory(src) +else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -DNDEBUG -DLongBow_DISABLE_ASSERTIONS -D_GNU_SOURCE") + macro(AddTest testFile) + add_executable(${ARGV0} ${ARGV0}.c) + target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) + add_test(${ARGV0} ${ARGV0}) + set_target_properties(${ARGV0} PROPERTIES FOLDER Test) + endmacro(AddTest) + + add_subdirectory(src) + add_subdirectory(documentation) +endif() \ No newline at end of file -- 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 'longbow/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 41c641d145da205bcc7afe812031e37c9a397280 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Thu, 30 Mar 2017 14:00:56 +0200 Subject: Removed additional lines Change-Id: I90f4a9673ef3819eb1bc038cb229c0990a3430a3 Signed-off-by: Mauro Sardara --- longbow/CMakeLists.txt | 3 +-- longbow/LICENSE | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 2c40e3c1..ae47ca6f 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -28,7 +28,6 @@ add_definitions("-DRELEASE_VERSION=\"${RELEASE_VERSION}\"") #set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DLongBow_DISABLE_ASSERTIONS") - find_package( Doxygen ) find_package( Uncrustify ) find_package( PythonInterp ) @@ -119,4 +118,4 @@ else() INCLUDE(CPack) -endif() \ No newline at end of file +endif() diff --git a/longbow/LICENSE b/longbow/LICENSE index 99c77d9d..318b3f59 100644 --- a/longbow/LICENSE +++ b/longbow/LICENSE @@ -10,5 +10,3 @@ 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. - - -- 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 'longbow/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 95f1b293278529955c0bc0c29524ab979c4ce847 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 10 Apr 2017 12:54:43 +0200 Subject: Updating longbow CMakeLists enabling assertions by default Change-Id: Iab8d879d291511a2007e24696d4e3171329a2fe4 Signed-off-by: Mauro Sardara --- longbow/CMakeLists.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index b899dfd5..61572ba7 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -24,9 +24,6 @@ execute_process(COMMAND date -u +%Y-%m-%dT%H:%M:%SZ MESSAGE( STATUS "Configuring version ${RELEASE_VERSION}" ) add_definitions("-DRELEASE_VERSION=\"${RELEASE_VERSION}\"") -#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3") - -#set(CMAKE_C_FLAGS_NOPANTS "${CMAKE_C_FLAGS_NOPANTS} -O3 -DNDEBUG -DLongBow_DISABLE_ASSERTIONS") find_package( Doxygen ) find_package( Uncrustify ) @@ -62,7 +59,7 @@ if(ANDROID_API) add_subdirectory(src) else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -DNDEBUG -DLongBow_DISABLE_ASSERTIONS -D_GNU_SOURCE") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -D_GNU_SOURCE") macro(AddTest testFile) add_executable(${ARGV0} ${ARGV0}.c) target_link_libraries(${ARGV0} ${PARC_BIN_LIBRARIES}) -- 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 'longbow/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 8dab1436b701372eacf32bd6e22b452c486af01e Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 29 Apr 2017 04:30:05 +0200 Subject: Adding support for building dev and doc packages. Change-Id: I0631bbf72e23e8f03645f300f2b89980e91da6ec Signed-off-by: Mauro Sardara --- longbow/CMakeLists.txt | 94 +++++++++++++++++-------- longbow/documentation/CMakeLists.txt | 8 +-- longbow/scripts/build-package.sh | 54 ++++---------- longbow/src/LongBow/CMakeLists.txt | 6 +- longbow/src/python/CMakeLists.txt | 4 +- longbow/src/python/site-packages/CMakeLists.txt | 24 +++---- 6 files changed, 99 insertions(+), 91 deletions(-) (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index 0a706dd9..07c743c7 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -72,46 +72,78 @@ else() 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(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) + + 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}_PACKAGE_DEPENDS "python (>= 2.7.0)") - SET(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCHITECTURE}") + 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}_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") + 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() + 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 "Runtime and testing framework for C applications.") - SET(CPACK_${TYPE}_PACKAGE_HOMEPAGE "https://wiki.fd.io/view/Cframework") - - 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 "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 diff --git a/longbow/documentation/CMakeLists.txt b/longbow/documentation/CMakeLists.txt index 33f92995..61e9f8b6 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_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) + install(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/images COMPONENT documentation) + install(DIRECTORY doxygen-extras/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/doxygen-extras COMPONENT documentation) + install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow/examples COMPONENT documentation) + install(FILES DoxygenLayout.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/longbow COMPONENT documentation) set(HTML_PATH ${CMAKE_CURRENT_BINARY_DIR}/generated-documentation/html) diff --git a/longbow/scripts/build-package.sh b/longbow/scripts/build-package.sh index a7078e0a..9bab45e5 100644 --- a/longbow/scripts/build-package.sh +++ b/longbow/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="" 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 + 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,11 @@ 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 + update_cmake_repo + 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 +166,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 @@ -217,4 +193,4 @@ build_package() { PACKAGE_NAME="LONGBOW" pushd $SCRIPT_PATH/.. build_package $PACKAGE_NAME -popd \ No newline at end of file +popd diff --git a/longbow/src/LongBow/CMakeLists.txt b/longbow/src/LongBow/CMakeLists.txt index 476cc8ab..27efc12c 100644 --- a/longbow/src/LongBow/CMakeLists.txt +++ b/longbow/src/LongBow/CMakeLists.txt @@ -157,11 +157,11 @@ set(longbowLibraries ) foreach(lib ${longbowLibraries}) - install(TARGETS ${lib} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + install(TARGETS ${lib} COMPONENT library LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) endforeach() -install(FILES ${LIBLONGBOW_HEADER_FILES} DESTINATION include/LongBow ) -install(FILES ${LONGBOW_REPORT_HEADER_FILES} DESTINATION include/LongBow/Reporting ) +install(FILES ${LIBLONGBOW_HEADER_FILES} DESTINATION include/LongBow COMPONENT headers) +install(FILES ${LONGBOW_REPORT_HEADER_FILES} DESTINATION include/LongBow/Reporting COMPONENT headers) if(ANDROID_API) message("############ Detected cross compile for ${CMAKE_SYSTEM_NAME}") diff --git a/longbow/src/python/CMakeLists.txt b/longbow/src/python/CMakeLists.txt index 157cda21..33e2d70e 100644 --- a/longbow/src/python/CMakeLists.txt +++ b/longbow/src/python/CMakeLists.txt @@ -1,10 +1,10 @@ -add_subdirectory(site-packages) +add_subdirectory(site-packages) install( FILES parc_uncrustify.cfg DESTINATION ${CMAKE_INSTALL_PREFIX}/etc ) macro(AddLongBowPythonScript scriptFile) configure_file(${ARGV0}.py ${ARGV0} @ONLY) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${ARGV0} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${ARGV0} COMPONENT library DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) endmacro(AddLongBowPythonScript) set(ScriptList diff --git a/longbow/src/python/site-packages/CMakeLists.txt b/longbow/src/python/site-packages/CMakeLists.txt index fab750f7..f0be88f6 100644 --- a/longbow/src/python/site-packages/CMakeLists.txt +++ b/longbow/src/python/site-packages/CMakeLists.txt @@ -1,12 +1,12 @@ -install(FILES longbow.pth DESTINATION ${INSTALL_BASE_PYTHON_DIR}) -install(FILES longbow/LongBow.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/FileUtil.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/GCov.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/GCovSummary.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/ANSITerm.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/SymbolTable.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/Language_C.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/StyleReport.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/CoverageReport.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/VocabularyReport.py DESTINATION ${INSTALL_PYTHON_DIR}) -install(FILES longbow/NameReport.py DESTINATION ${INSTALL_PYTHON_DIR}) +install(FILES longbow.pth DESTINATION ${INSTALL_BASE_PYTHON_DIR} COMPONENT library) +install(FILES longbow/LongBow.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/FileUtil.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/GCov.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/GCovSummary.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/ANSITerm.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/SymbolTable.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/Language_C.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/StyleReport.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/CoverageReport.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/VocabularyReport.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) +install(FILES longbow/NameReport.py DESTINATION ${INSTALL_PYTHON_DIR} COMPONENT library) -- 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 'longbow/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 'longbow/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 3f61eb8d1697f36fac4737665c7cff2d4335e5b2 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Thu, 15 Feb 2018 17:41:33 +0100 Subject: Trigger docs build Change-Id: Iecac50b01eaa82cbae1a1a37203508123c82f42e Signed-off-by: Mauro Sardara --- longbow/CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index ac34f8b5..c7219ab3 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -1,6 +1,5 @@ cmake_minimum_required(VERSION 3.2) project(LongBow) - include( CTest ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") @@ -75,14 +74,14 @@ elseif(COMPILE_FOR_IOS) 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}) -- cgit 1.2.3-korg From 3e39d60e44e0a9136b83233fcb2e079d65f3a482 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 20 Feb 2018 19:19:36 +0100 Subject: Trigger docs build Change-Id: I2d0528263aeeff2b36e8078a525f1ea072a26c26 Signed-off-by: Mauro Sardara --- longbow/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'longbow/CMakeLists.txt') diff --git a/longbow/CMakeLists.txt b/longbow/CMakeLists.txt index c7219ab3..ee2798a1 100644 --- a/longbow/CMakeLists.txt +++ b/longbow/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.2) project(LongBow) + include( CTest ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") -- cgit 1.2.3-korg