diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0385bdba7868171455a86370c1855d931e690d32..40e8f893f524af44e839739a009451f3840ff45b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ stages: - static - build - test + - pack flawfinder-sast: stage: static @@ -52,7 +53,7 @@ linux:build: script: - DEBIAN_FRONTEND=noninteractive apt update && apt install -y build-essential uuid-dev git libmsgpack-dev liburiparser-dev libgnutls28-dev cmake ninja-build cppcheck - mkdir build && cd build - - cmake $CI_PROJECT_DIR -GNinja -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -DUSE_CPPCHECK=TRUE -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB + - cmake $CI_PROJECT_DIR -GNinja -DFTL_VERSION=$CI_COMMIT_TAG -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -DUSE_CPPCHECK=TRUE -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB - ninja #cache: @@ -108,6 +109,26 @@ linux:valgrind: reports: junit: build/report.xml +linux:pack: + only: + - main + + stage: pack + tags: + - docker + + needs: ["linux:build"] + script: + - DEBIAN_FRONTEND=noninteractive apt update && apt install -y libmsgpackc2 liburiparser1 cmake + - cd build + - cpack + + artifacts: + when: always + paths: + - build/*.deb + expire_in: 1 week + ### Windows windows:build: @@ -157,3 +178,29 @@ windows:test: - $env:PATH+=";C:/Shared/Deploy" - cd build - ctest -V --output-on-failure --timeout 60 + +windows:pack: + only: + - main + + stage: pack + + tags: + - windows + needs: ["windows:build"] + + cache: # use artifacts instead if multiple runners available + key: $CI_COMMIT_SHORT_SHA + paths: + - build/ + + script: + - $env:PATH+=";C:/Shared/Deploy" + - cd build + - cpack + + artifacts: + when: always + paths: + - build/*.zip + expire_in: 1 week diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f718626f578ffe51522e276b2892e91478541ec..14523cb787ce39db39e7a49141126a192fe2a068 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,11 @@ include (CheckIncludeFile) include (CheckIncludeFileCXX) include (CheckFunctionExists) -project (beyond-protocol VERSION 0.0.1) +if (NOT FTL_VERSION) + set(FTL_VERSION 0.0.1) +endif() + +project (beyond-protocol VERSION "${FTL_VERSION}") include(GNUInstallDirs) include(CTest) @@ -145,7 +149,7 @@ if (WIN32) # TODO(nick) Should do based upon compiler (VS) #set_property(TARGET voltu-node PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${VS_DEBUG_WORKING_DIRECTORY}) endif() -#include(ftl_CPack) +include(ftl_CPack) ### ======== diff --git a/cmake/ftl_CPack.cmake b/cmake/ftl_CPack.cmake index 2fb65fa614df7c11ab8f7aae2cd26767890eff33..47261558cce7d45f200029020698047c8307e914 100644 --- a/cmake/ftl_CPack.cmake +++ b/cmake/ftl_CPack.cmake @@ -1,15 +1,18 @@ # use build date as patch version string(TIMESTAMP BUILD_TIME "%Y%m%d") set(CPACK_PACKAGE_VERSION_PATCH "${BUILD_TIME}") - +set(CPACK_PACKAGE_NAME "libftl-protocol") +set(CPACK_DEBIAN_PACKAGE_NAME "FTL Protocol Library") +set(CPACK_PACKAGE_VENDOR "University of Turku") +set(CPACK_PACKAGE_DESCRIPTION "Networking and streaming library for FTL data") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "UTU Future Tech Lab") set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") -set(CPACK_DEB_PACKAGE_COMPONENT ON) +#set(CPACK_DEB_PACKAGE_COMPONENT ON) set(CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous") -install(DIRECTORY "${PROJECT_SOURCE_DIR}/data/" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/ftl/data/") +#install(DIRECTORY "${PROJECT_SOURCE_DIR}/data/" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/ftl/data/") macro(deb_append_dependency DEPENDS) if ("${CPACK_DEBIAN_PACKAGE_DEPENDS}" STREQUAL "") @@ -19,16 +22,22 @@ macro(deb_append_dependency DEPENDS) endif() endmacro() -if (HAVE_PYLON) - deb_append_dependency("pylon (>= 6.1.1)") - set(ENV{LD_LIBRARY_PATH} "=/opt/pylon/lib/") -endif() +#if (HAVE_PYLON) +# deb_append_dependency("pylon (>= 6.1.1)") +# set(ENV{LD_LIBRARY_PATH} "=/opt/pylon/lib/") +#endif() + +deb_append_dependency("libmsgpackc2 (>= 3.0.1-3)") +deb_append_dependency("liburiparser1 (>= 0.9.3-2)") +deb_append_dependency("libgnutlsxx28 (>= 3.6.13)") if(WIN32) - message(STATUS "Copying DLLs: OpenCV") - file(GLOB WINDOWS_LIBS "${OpenCV_INSTALL_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/bin/*.dll") - install(FILES ${WINDOWS_LIBS} DESTINATION bin) - set(CPACK_GENERATOR "WiX") + #message(STATUS "Copying DLLs: OpenCV") + #file(GLOB WINDOWS_LIBS "${OpenCV_INSTALL_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/bin/*.dll") + #install(FILES ${WINDOWS_LIBS} DESTINATION bin) + set(CPACK_GENERATOR "ZIP") +else() + set(CPACK_GENERATOR "DEB") endif() include(CPack)