From fb899b7dfea689a48949d3f8d87f74b0160a2eab Mon Sep 17 00:00:00 2001 From: GitLab Runner Date: Tue, 16 Jan 2024 07:50:54 +0300 Subject: [PATCH] Generated export autocommit from mamba.ru --- .dockerignore | 22 +++++++++++++ CMakeLists.txt | 6 ++-- Dockerfile | 10 ++++++ Dockerfile-build | 10 ++++++ Makefile | 26 +++++++++++----- cmake/install.cmake | 58 +++++++++++++++++++++++++++++++++++ config/CMakeLists.txt | 43 ++++++++++++++++++++++++++ config/projectConfig.cmake.in | 7 +++++ config/version.hpp.in | 7 +++++ config/version.yml.in | 4 +++ daemon/demod.cpp | 1 + utils/wtelnet/CMakeLists.txt | 5 +-- version.yml | 4 +++ 13 files changed, 189 insertions(+), 14 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 Dockerfile-build create mode 100644 cmake/install.cmake create mode 100644 config/CMakeLists.txt create mode 100644 config/projectConfig.cmake.in create mode 100644 config/version.hpp.in create mode 100644 config/version.yml.in create mode 100644 version.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..cfe4070 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,22 @@ +*_build.counter +*build_info.h +*~ +*.kdev4 +*.pyc +.cproject +.project +*.o +*/debug +*/release +*/build +build +.tup +*.kch +autom4te.cache +*.deps +CMakeFiles +CMakeCache.txt +*.kate-swp +*build_info.h +config.h +docs diff --git a/CMakeLists.txt b/CMakeLists.txt index 7920c63..31d5dec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.10) -project(demod) +project(demod VERSION "0.9.8") include(cmake/ci.cmake) @@ -17,3 +17,5 @@ if ( BUILD_TESTING ) endif() add_subdirectory(utils) + +include(cmake/install.cmake) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d9da7d8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM debian +ENV LANG ru_RU.UTF-8 +ENV TZ="Europe/Moscow" +RUN apt update +RUN apt -y install g++ cmake git wget make +COPY . /prj +WORKDIR "/prj" +RUN make release +RUN make install +RUN rm -rf /prj diff --git a/Dockerfile-build b/Dockerfile-build new file mode 100644 index 0000000..3b309d9 --- /dev/null +++ b/Dockerfile-build @@ -0,0 +1,10 @@ +FROM debian +ENV LANG ru_RU.UTF-8 +ENV TZ="Europe/Moscow" +RUN apt update +RUN apt -y install g++ cmake git wget make +COPY . . +RUN ls -l +RUN pwd +RUN make release +RUN make install diff --git a/Makefile b/Makefile index 57daa9a..064334d 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,6 @@ help: @echo " make shared" @echo " make static" @echo " make release" - @echo " make install" @echo " make tests" @echo " make doc" @echo " make cppcheck" @@ -16,12 +15,18 @@ help: @echo " make clean" @echo " make update" @echo " make upgrade" + @echo " make install" + @echo " make docker-build" + @echo " make docker-run" + @echo " make docker-rm" @echo "Example:" @echo " make static " @echo " make shared VERBOSE=1 ARGS=-j5" @echo " BUILD_SHARED_LIBS=ON make tests" + @echo " make install ARGS=\"--prefix ./build/test-install\"" CMAKE ?= cmake +PRJ = `basename ${PWD}` doc: rm -rf docs @@ -36,6 +41,10 @@ init: runup ./external/cmake-ci/scripts/after_make.sh cppcheck: runup ./external/cmake-ci/scripts/cppcheck-ci.sh +release: runup + cd build && ${CMAKE} .. -DDISABLE_WARNINGS=ON + ${CMAKE} --build ./build -- $(or ${ARGS},-j4) + ./external/cmake-ci/scripts/after_make.sh static: runup cd build && ${CMAKE} .. -DBUILD_SHARED_LIBS=OFF -DDISABLE_WARNINGS=ON ${CMAKE} --build ./build -- $(or ${ARGS},-j4) @@ -44,13 +53,6 @@ shared: runup cd build && ${CMAKE} .. -DBUILD_SHARED_LIBS=ON -DDISABLE_WARNINGS=ON ${CMAKE} --build ./build -- $(or ${ARGS},-j4) ./external/cmake-ci/scripts/after_make.sh -release: runup - cd build && ${CMAKE} .. -DDISABLE_WARNINGS=ON - ${CMAKE} --build ./build -- $(or ${ARGS},-j4) - ./external/cmake-ci/scripts/after_make.sh -install: runup - cd build && ${CMAKE} .. -DDISABLE_WARNINGS=ON - ${CMAKE} --install ./build tests: runup cd build && ${CMAKE} .. -DBUILD_TESTING=ON ${CMAKE} --build ./build -- $(or ${ARGS},-j4) @@ -86,3 +88,11 @@ update: runup ./external/cmake-ci/scripts/update.sh upgrade: update ./external/cmake-ci/scripts/upgrade.sh +install: runup + ${CMAKE} --install ./build ${ARGS} +docker-build: + docker build -t ${PRJ} -f Dockerfile.build . +docker-run: + docker run --rm -it ${PRJ} +docker-rm: + docker rmi ${PRJ} diff --git a/cmake/install.cmake b/cmake/install.cmake new file mode 100644 index 0000000..63a3964 --- /dev/null +++ b/cmake/install.cmake @@ -0,0 +1,58 @@ +set(VERSION_MAJOR "${${PROJECT_NAME}_VERSION_MAJOR}") +set(VERSION_MINOR "${${PROJECT_NAME}_VERSION_MINOR}") +set(VERSION_PATCH "${${PROJECT_NAME}_VERSION_PATCH}") + +message(STATUS "${PROJECT_VERSION}: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + +if ( IS_DIRECTORY ${PROJECT_NAME} ) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config/version.hpp.in" + "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.hpp" ) +endif() + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config/version.yml.in" + "${CMAKE_CURRENT_SOURCE_DIR}/version.yml" ) + + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +set(package_config_destination ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + +configure_package_config_file( + ${CMAKE_CURRENT_LIST_DIR}/../config/projectConfig.cmake.in ${PROJECT_NAME}Config.cmake + INSTALL_DESTINATION ${package_config_destination} +) +write_basic_package_version_file( + ${PROJECT_NAME}ConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +install( + EXPORT ${PROJECT_NAME}Targets + DESTINATION ${package_config_destination} +) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + DESTINATION ${package_config_destination} +) + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) + +if ( IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${PROJECT_NAME} ) + install( + DIRECTORY ${PROJECT_SOURCE_DIR}/${PROJECT_NAME} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/" + PATTERN *.hpp + ) +endif() + diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt new file mode 100644 index 0000000..6929670 --- /dev/null +++ b/config/CMakeLists.txt @@ -0,0 +1,43 @@ +project(config) + +INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) +INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) +INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake) + +CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_RT_LIB) +CHECK_LIBRARY_EXISTS(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME_FUNC) + +check_include_file("sys/time.h" HAVE_SYS_TIME_H) +check_include_file("sys/resource.h" HAVE_SYS_RESORCE_H) +check_include_file("sys/timeb.h" HAVE_SYS_TIMEB_H) + +check_include_file("unistd.h" HAVE_UNISTD_H) +check_include_file("io.h" HAVE_IO_H) +check_include_file("Windows.h" HAVE_WINDOWS_H) + + +set( + CMAKE_REQUIRED_INCLUDES + ${CMAKE_REQUIRED_INCLUDES} + "sys/time.h" + "sys/resource.h" + "sys/timeb.h" + "unistd.h" + "io.h" + "Windows.h" +) + +check_function_exists("gettimeofday" HAVE_GETTIMEOFDAY_FUNC) +check_function_exists("socket" HAVE_SOCKET_FUNC) +check_function_exists("ftime" HAVE_FTIME_FUNC) +check_function_exists("_ftime" HAVE__FTIME_FUNC) +check_function_exists("_ftime32_s" HAVE__FTIME_S_FUNC) +check_function_exists("_ftime64_s" HAVE__FTIME_S_FUNC) +check_function_exists("isatty" HAVE_ISATTY_FUNC) +check_function_exists("_isatty" HAVE__ISATTY_FUNC) +check_function_exists("getrusage" HAVE_GETRUSAGE_FUNC) +check_function_exists("usleep" HAVE_USLEEP_FUNC) +check_function_exists("clock_gettime" HAVE_CLOCK_GETTIME_FUNC) + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../config/config.h.in" + "${CMAKE_CURRENT_SOURCE_DIR}/../fas/system/config.h" ) diff --git a/config/projectConfig.cmake.in b/config/projectConfig.cmake.in new file mode 100644 index 0000000..34ebca5 --- /dev/null +++ b/config/projectConfig.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") + +check_required_components(@PROJECT_NAME@) + +add_library(fas::testing ALIAS fas_testing) diff --git a/config/version.hpp.in b/config/version.hpp.in new file mode 100644 index 0000000..73347c7 --- /dev/null +++ b/config/version.hpp.in @@ -0,0 +1,7 @@ +#pragma once + +#define PROJECT_NAME "@PROJECT_NAME@" +#define VERSION_MAJOR "@VERSION_MAJOR@" +#define VERSION_MINOR "@VERSION_MINOR@" +#define VERSION_PATCH "@VERSION_PATCH@" + diff --git a/config/version.yml.in b/config/version.yml.in new file mode 100644 index 0000000..0f4d652 --- /dev/null +++ b/config/version.yml.in @@ -0,0 +1,4 @@ +variables: + RELEASE_TAG: "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@" + RELEASE_BRANCH: "release-@VERSION_MAJOR@.@VERSION_MINOR@" + diff --git a/daemon/demod.cpp b/daemon/demod.cpp index 73a8440..485c039 100644 --- a/daemon/demod.cpp +++ b/daemon/demod.cpp @@ -4,6 +4,7 @@ #include #include +/**/ int main(int argc, char* argv[]) { return wfc::wfc( wfc::wfcroot( diff --git a/utils/wtelnet/CMakeLists.txt b/utils/wtelnet/CMakeLists.txt index dc1a89d..f6537d3 100644 --- a/utils/wtelnet/CMakeLists.txt +++ b/utils/wtelnet/CMakeLists.txt @@ -1,7 +1,4 @@ -#include(FindThreads) -#find_package(Boost COMPONENTS system REQUIRED) - add_executable(wtelnet wtelnet.cpp tcpclient.cpp udpclient.cpp ) +update_ogenc(TARGETS wtelnet OFF WARNINGS "-Wnull-dereference") wci_utils(wtelnet) target_link_libraries(wtelnet PRIVATE iow) -#target_link_libraries(wtelnet PUBLIC iow wlog wflow ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} ) diff --git a/version.yml b/version.yml new file mode 100644 index 0000000..90e7831 --- /dev/null +++ b/version.yml @@ -0,0 +1,4 @@ +variables: + RELEASE_TAG: "0.9.8" + RELEASE_BRANCH: "release-0.9" +