Skip to content

Commit

Permalink
Generated export autocommit from mamba.ru
Browse files Browse the repository at this point in the history
  • Loading branch information
GitLab Runner committed Dec 6, 2023
1 parent 029830b commit 568e249
Show file tree
Hide file tree
Showing 17 changed files with 276 additions and 37 deletions.
22 changes: 22 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -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
31 changes: 3 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
cmake_minimum_required(VERSION 3.10)

project(wjson)
project(wjson VERSION "0.9.8")

include(cmake/ci.cmake)

wci_submodule(NAME faslib)

add_library(wjson INTERFACE)

target_include_directories(wjson INTERFACE ${wjson_SOURCE_DIR})
target_include_directories(wjson INTERFACE $<BUILD_INTERFACE:${wjson_SOURCE_DIR}>)

target_link_libraries(wjson INTERFACE faslib)

Expand All @@ -20,29 +20,4 @@ if ( BUILD_TESTING OR CODE_COVERAGE)
endif()
endif()

set(CPACK_PACKAGE_NAME "wjson")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
set(CPACK_PACKAGE_VERSION_PATCH "4")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/Readme.md")
set(CPACK_PACKAGE_CONTACT "[email protected]")

install(DIRECTORY wjson DESTINATION include
PATTERN "*.cmake" EXCLUDE
PATTERN "*~" EXCLUDE
PATTERN ".*" EXCLUDE
PATTERN "Makefile" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
)

install(DIRECTORY . DESTINATION share/wjson
PATTERN "wjson" EXCLUDE
PATTERN "*.cmake" EXCLUDE
PATTERN "*~*" EXCLUDE
PATTERN "*kdev*" EXCLUDE
PATTERN ".git*" EXCLUDE
PATTERN "Readme.md" EXCLUDE
)

include(CPack)
include(cmake/install.cmake)
10 changes: 10 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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
26 changes: 18 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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}
58 changes: 58 additions & 0 deletions cmake/install.cmake
Original file line number Diff line number Diff line change
@@ -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_NAME} )
install(
DIRECTORY ${PROJECT_NAME}
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}"
PATTERN *.hpp
)
endif()

43 changes: 43 additions & 0 deletions config/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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" )
44 changes: 44 additions & 0 deletions config/config.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//
// Author: Vladimir Migashko <[email protected]>, (C) 2012
//
// Copyright: See COPYING file that comes with this distribution
//

#ifndef FAS_SYSTEM_CONFIG_HPP
#define FAS_SYSTEM_CONFIG_HPP

/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H

#cmakedefine HAVE_SYS_RESORCE_H
#cmakedefine HAVE_UNISTD_H


/* Define to 1 if you have the <sys/timeb.h> header file. */
#cmakedefine HAVE_SYS_TIMEB_H

/* Define to 1 if you have the <windows.h> header file. */
#cmakedefine HAVE_WINDOWS_H

/* Define to 1 if you have the <io.h> header file. */
#cmakedefine HAVE_IO_H

/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY_FUNC

/* Define to 1 if you have the `socket' function. */
#cmakedefine HAVE_SOCKET_FUNC

/* Define to 1 if you have the `clock_gettime' function. */
#cmakedefine HAVE_CLOCK_GETTIME_FUNC
#cmakedefine HAVE_FTIME_FUNC
#cmakedefine HAVE__FTIME_FUNC
#cmakedefine HAVE__FTIME_S_FUNC
#cmakedefine HAVE_ISATTY_FUNC
#cmakedefine HAVE__ISATTY_FUNC
#cmakedefine HAVE_GETRUSAGE_FUNC
#cmakedefine HAVE_USLEEP_FUNC
#cmakedefine HAVE_RT_LIB

#endif

7 changes: 7 additions & 0 deletions config/projectConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")

check_required_components(@PROJECT_NAME@)

add_library(fas::testing ALIAS fas_testing)
7 changes: 7 additions & 0 deletions config/version.hpp.in
Original file line number Diff line number Diff line change
@@ -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@"

4 changes: 4 additions & 0 deletions config/version.yml.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
variables:
RELEASE_TAG: "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@"
RELEASE_BRANCH: "release-@VERSION_MAJOR@.@VERSION_MINOR@"

2 changes: 2 additions & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ add_executable(example14 example14.cpp)
add_executable(example15 example15.cpp)
add_executable(example16 example16.cpp)
add_executable(example17 example17.cpp)
add_executable(example18 example17.cpp)

wci_utils(example1 example2 example3 example4 example5)
wci_utils(example6 example7 example8 example10 example11)
wci_utils(example13 example14 example15 example16 example17)
wci_utils(example18)

if ( NOT ${CMAKE_CXX_STANDARD} EQUAL 98 )
add_executable(example9 example9.cpp)
Expand Down
44 changes: 44 additions & 0 deletions examples/example18.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#include <wjson/json.hpp>
#include <wjson/strerror.hpp>
#include <iostream>

struct foo
{
bool flag;
int value;
std::string string;
foo(): flag(false), value(0) {}
};

struct boo: foo
{
foo f;
std::vector<foo> fl;
}

struct foo_json
{
JSON_NAME(flag)
JSON_NAME(value)
JSON_NAME(string)

typedef wjson::object<
foo,
wjson::member_list<
wjson::member<n_flag, foo,bool, &foo::flag>,
wjson::member<n_value, foo,int, &foo::value>,
wjson::member<n_string, foo,std::string, &foo::string>
>
> meta;

typedef meta::target target;
typedef meta::member_list member_list;
typedef meta::serializer serializer;

static const char* comment(n_flag) { return "Это флаг"; }
};

int main()
{
return 0;
}
1 change: 1 addition & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ set(

add_executable(test_json ${test_source_list})
target_link_libraries(test_json PUBLIC fas::testing)
#target_link_libraries(test_json PUBLIC fas_testing)
wci_test(NAME test_json TARGET test_json)


Expand Down
4 changes: 4 additions & 0 deletions version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
variables:
RELEASE_TAG: "0.9.8"
RELEASE_BRANCH: "release-0.9"

1 change: 1 addition & 0 deletions wjson/predef.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <fas/type_list.hpp>

#include <string>
#include <ctime>

namespace wjson{

Expand Down
Loading

0 comments on commit 568e249

Please sign in to comment.