Skip to content

Commit 2cf783b

Browse files
committed
Testing.
0 parents  commit 2cf783b

File tree

7 files changed

+68
-0
lines changed

7 files changed

+68
-0
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "dependencies/simdjson"]
2+
path = dependencies/simdjson
3+
url = https://github.com/simdjson/simdjson.git

CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
cmake_minimum_required(VERSION 3.9) # CMP0069 NEW
2+
3+
project(simdjson
4+
DESCRIPTION "simdjson demo"
5+
LANGUAGES CXX
6+
)
7+
8+
set(CMAKE_CXX_STANDARD 17)
9+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
10+
set(CMAKE_CXX_EXTENSIONS OFF)
11+
set(CMAKE_MACOSX_RPATH OFF)
12+
set(CMAKE_THREAD_PREFER_PTHREAD ON)
13+
set(THREADS_PREFER_PTHREAD_FLAG ON)
14+
15+
set(PROJECT_VERSION_MAJOR 0)
16+
set(PROJECT_VERSION_MINOR 0)
17+
set(PROJECT_VERSION_PATCH 1)
18+
add_subdirectory(dependencies)
19+
add_subdirectory(src)
20+

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Simple demo to show that we can use simdjson as a CMake dependency.
2+
3+
```
4+
mkdir build && cd build && cmake .. && cmake --build . && ./src/test
5+
```

dependencies/CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
function(initialize_submodule DIRECTORY)
2+
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${DIRECTORY}/.git)
3+
find_package(Git QUIET REQUIRED)
4+
message(STATUS "${CMAKE_CURRENT_SOURCE_DIR}/${DIRECTORY}/.git does not exist. Initializing ${DIRECTORY} submodule ...")
5+
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init ${DIRECTORY}
6+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
7+
RESULT_VARIABLE GIT_EXIT_CODE)
8+
if(NOT GIT_EXIT_CODE EQUAL "0")
9+
message(FATAL_ERROR "${GIT_EXECUTABLE} submodule update --init dependencies/${DIRECTORY} failed with exit code ${GIT_EXIT_CODE}, please checkout submodules")
10+
endif()
11+
endif()
12+
endfunction(initialize_submodule)
13+
14+
initialize_submodule(simdjson)
15+
add_library(simdjsondep INTERFACE)
16+
target_include_directories(simdjsondep INTERFACE simdjson/include)
17+
add_subdirectory(simdjson EXCLUDE_FROM_ALL)

dependencies/simdjson

Submodule simdjson added at 5d7a84f

src/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
add_executable(test test.cpp)
2+
3+
target_link_libraries(test simdjson)
4+
target_link_libraries(test simdjsondep)
5+

src/test.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#include "simdjson.h"
2+
int main(int argc, char* argv[]) {
3+
if(argc < 2) {
4+
std::cout << "provide the filename of a JSON file" << std::endl;
5+
return EXIT_FAILURE;
6+
}
7+
try {
8+
simdjson::dom::parser parser;
9+
simdjson::dom::element doc = parser.load(argv[1]);
10+
std::cout << "found valid JSON" << std::endl;
11+
return EXIT_SUCCESS;
12+
} catch (simdjson::simdjson_error &e) {
13+
std::cout << "Exception! Bad JSON?" << std::endl;
14+
std::cout << e.what() << std::endl;
15+
return EXIT_FAILURE;
16+
}
17+
}

0 commit comments

Comments
 (0)