install WIP

This commit is contained in:
Joao Paulo Magalhaes
2026-01-15 21:03:49 +00:00
parent 91c88fe26a
commit e302f2a461
8 changed files with 49 additions and 34 deletions

View File

@@ -82,20 +82,19 @@ c4_add_library(ryml
if(NOT RYML_STANDALONE)
target_link_libraries(ryml PUBLIC c4core)
else()
function(_ryml_add_sources_to_lib lib filelist filedir)
file(STRINGS ${filelist} _src)
_c4_transform_to_full_path(_src _ ${filedir})
target_sources(${lib} PRIVATE ${_src})
target_include_directories(${lib} PUBLIC $<BUILD_INTERFACE:${filedir}>)
list(FILTER _src EXCLUDE REGEX .*cpp)
c4_install_files("${_src}" ${CMAKE_INSTALL_PREFIX}/include ${filedir})
endfunction()
_ryml_add_sources_to_lib(ryml ext/c4core.src.txt ${CMAKE_CURRENT_LIST_DIR}/ext/c4core.src)
if(RYML_BUILD_TESTS OR RYML_BUILD_BENCHMARKS OR RYML_BUILD_TOOLS)
add_library(ryml-c4core_dev)
target_link_libraries(ryml-c4core_dev PUBLIC ryml)
_ryml_add_sources_to_lib(ryml-c4core_dev ext/c4core.dev.txt ${CMAKE_CURRENT_LIST_DIR}/ext/c4core.dev)
endif()
message(STATUS aqui0)
file(STRINGS ext/c4core.src.txt _src)
message(STATUS aqui1)
_c4_transform_to_full_path(_src _ ${CMAKE_CURRENT_LIST_DIR}/ext/c4core.src)
message(STATUS aqui2)
target_sources(ryml PRIVATE ${_src})
message(STATUS aqui3)
target_include_directories(ryml PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/ext/c4core.src>)
message(STATUS aqui4)
list(FILTER _src EXCLUDE REGEX .*cpp)
message(STATUS aqui5)
c4_install_files("${_src}" ${CMAKE_INSTALL_PREFIX}/include ${CMAKE_CURRENT_LIST_DIR}/ext/c4core.src)
message(STATUS aqui6)
endif()
if(RYML_WITH_TAB_TOKENS)

View File

@@ -314,7 +314,6 @@ void bm_rymlints_yaml_inplace(bm::State& st)
void bm_rymlints_yaml_inplace_reserve(bm::State& st)
{
c4::substr src = c4::to_substr(s_bm_case->in_place).trimr('\0');
int sz = ryml::extra::estimate_events_ints_size(src);
for(auto _ : st)
{
st.PauseTiming();
@@ -349,7 +348,6 @@ void bm_rymlints_yaml_inplace_nofilter(bm::State& st)
void bm_rymlints_yaml_inplace_nofilter_reserve(bm::State& st)
{
c4::substr src = c4::to_substr(s_bm_case->in_place).trimr('\0');
int sz = ryml::extra::estimate_events_ints_size(src);
for(auto _ : st)
{
st.PauseTiming();
@@ -388,14 +386,14 @@ void bm_rymlints_json_inplace(bm::State& st)
void bm_rymlints_json_inplace_reserve(bm::State& st)
{
c4::substr src = c4::to_substr(s_bm_case->in_place).trimr('\0');
int sz = ryml::extra::estimate_events_ints_size(src);
size_t sz = (size_t)ryml::extra::estimate_events_ints_size(src);
for(auto _ : st)
{
ONLY_FOR_JSON;
st.PauseTiming();
s_bm_case->prepare(kResetInPlace);
IntObjects obj;
obj.data.resize(src);
obj.data.resize(sz, src.len);
st.ResumeTiming();
parse_json_inplace(s_bm_case->filename, src, obj.parser, &obj.data);
bm::DoNotOptimize(obj);
@@ -425,14 +423,14 @@ void bm_rymlints_json_inplace_nofilter(bm::State& st)
void bm_rymlints_json_inplace_nofilter_reserve(bm::State& st)
{
c4::substr src = c4::to_substr(s_bm_case->in_place).trimr('\0');
int sz = ryml::extra::estimate_events_ints_size(src);
size_t sz = (size_t)ryml::extra::estimate_events_ints_size(src);
for(auto _ : st)
{
ONLY_FOR_JSON;
st.PauseTiming();
s_bm_case->prepare(kResetInPlace);
IntObjects obj(ryml::ParserOptions().scalar_filtering(false));
obj.data.resize(src);
obj.data.resize(sz, src.len);
st.ResumeTiming();
parse_json_inplace(s_bm_case->filename, src, obj.parser, &obj.data);
bm::DoNotOptimize(obj);

View File

@@ -2,7 +2,6 @@ c4/enum.hpp
c4/bitmask.hpp
c4/c4_push.hpp
c4/c4_pop.hpp
c4/dump.hpp
c4/memory_resource.hpp
c4/memory_resource.cpp
c4/restrict.hpp

View File

@@ -6,6 +6,7 @@ c4/charconv.hpp
c4/compiler.hpp
c4/config.hpp
c4/cpu.hpp
c4/dump.hpp
c4/error.cpp
c4/error.hpp
c4/export.hpp

View File

@@ -1,4 +1,6 @@
# these are used both for testing and benchmarking
set(C4FS_DIR ${CMAKE_CURRENT_BINARY_DIR}/subprojects/c4fs)
c4_download_remote_proj(c4fs C4FS_DIR
GIT_REPOSITORY https://github.com/biojppm/c4fs
@@ -8,13 +10,13 @@ c4_add_library(c4fs
${C4FS_DIR}/src/c4/fs/fs.hpp
${C4FS_DIR}/src/c4/fs/fs.cpp
INC_DIRS
${C4FS_DIR}/src
${CMAKE_CURRENT_LIST_DIR}/c4core.src
${CMAKE_CURRENT_LIST_DIR}/c4core.dev
${C4FS_DIR}/src
LIBS
ryml
)
set(C4LOG_DIR ${CMAKE_CURRENT_BINARY_DIR}/subprojects/c4log)
c4_download_remote_proj(c4log C4LOG_DIR
GIT_REPOSITORY https://github.com/biojppm/c4log
@@ -24,12 +26,25 @@ c4_add_library(c4log
${C4LOG_DIR}/src/c4/log/log.hpp
${C4LOG_DIR}/src/c4/log/log.cpp
INC_DIRS
${C4LOG_DIR}/src
${CMAKE_CURRENT_LIST_DIR}/c4core.src
${CMAKE_CURRENT_LIST_DIR}/c4core.dev
${C4LOG_DIR}/src
LIBS
ryml
)
if(TARGET ryml-c4core_dev)
if(RYML_STANDALONE)
message(STATUS "wtf0: ${CMAKE_CURRENT_LIST_DIR}")
message(STATUS "wtf1: ${CMAKE_CURRENT_SOURCE_DIR}")
message(STATUS "wtf2: ${CMAKE_SOURCE_DIR}")
add_library(ryml-c4core_dev)
file(STRINGS ext/c4core.dev.txt _src)
_c4_transform_to_full_path(_src _ ${CMAKE_CURRENT_LIST_DIR}/c4core.dev)
target_sources(ryml-c4core_dev PRIVATE ${_src})
target_include_directories(ryml PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/c4core.dev>)
list(FILTER _src EXCLUDE REGEX .*cpp)
target_include_directories(ryml-c4core_dev PUBLIC
${CMAKE_CURRENT_LIST_DIR}/c4core.src)
target_link_libraries(c4fs PRIVATE ryml-c4core_dev)
target_link_libraries(c4log PRIVATE ryml-c4core_dev)
endif()

View File

@@ -2,7 +2,7 @@ c4_setup_testing(GTEST)
function(ryml_add_test_no_lib test_name)
c4_add_executable(${test_name} LIBS ryml FOLDER test ${ARGN})
c4_add_executable(${test_name} LIBS ryml ryml-c4core_dev FOLDER test ${ARGN})
if(RYML_DBG)
target_compile_definitions(${test_name} PRIVATE RYML_DBG)
c4_target_compile_flags(${test_name} PUBLIC GCC -Wno-useless-cast)
@@ -10,7 +10,8 @@ function(ryml_add_test_no_lib test_name)
c4_add_test(${test_name})
endfunction()
ryml_add_test_no_lib(ryml-test-quickstart
SOURCES ../samples/quickstart.cpp)
SOURCES ../samples/quickstart.cpp
)
ryml_add_test_no_lib(ryml-test-quickstart-ints
SOURCES
../samples/quickstart-ints.cpp
@@ -18,8 +19,9 @@ ryml_add_test_no_lib(ryml-test-quickstart-ints
../src_extra/c4/yml/extra/event_handler_ints.cpp
../src_extra/c4/yml/extra/ints_utils.hpp
../src_extra/c4/yml/extra/ints_utils.cpp
INC_DIRS ../ext/c4core.dev
INC_DIRS ../src_extra)
INC_DIRS
../src_extra
)
c4_add_library(ryml-_testlib LIBRARY_TYPE STATIC
@@ -46,7 +48,8 @@ c4_add_library(ryml-_testlib LIBRARY_TYPE STATIC
../src_extra/c4/yml/extra/string.hpp
INC_DIRS ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/../src_extra
LIBS ryml c4fs gtest
FOLDER test)
FOLDER test
)
if(BUILD_SHARED_LIBS)
# this is needed to resolve get_case() because it is provided by
# the test linking to this library
@@ -73,7 +76,7 @@ c4_add_library(ryml-_testgroup LIBRARY_TYPE STATIC
test_lib/test_group.hpp
test_lib/test_group.def.hpp
test_lib/test_group.cpp
LIBS ryml ryml-_testlib c4fs
LIBS ryml ryml-c4core_dev ryml-_testlib c4fs
FOLDER test)
if(RYML_DBG)
target_compile_definitions(ryml-_testgroup PUBLIC RYML_DBG)
@@ -265,7 +268,7 @@ if(RYML_TEST_SUITE)
testsuite/testsuite_events.hpp
testsuite/testsuite_parts.cpp
testsuite/testsuite_parts.hpp
LIBS ryml-_testlib c4log
LIBS ryml-_testlib ryml-c4core_dev c4log
INC_DIRS ${CMAKE_CURRENT_LIST_DIR}/../src_extra
FOLDER test)
add_dependencies(ryml-test-build ryml-test-suite)

View File

@@ -3,7 +3,7 @@ project(ryml
DESCRIPTION "Test project for an installed ryml"
HOMEPAGE_URL "https://github.com/biojppm/rapidyaml"
LANGUAGES CXX)
include(../../ext/c4core/cmake/c4Project.cmake)
include(../../proj/c4proj/c4Project.cmake)
c4_project(VERSION 0.10.0
AUTHOR "Joao Paulo Magalhaes <dev@jpmag.me>")