summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMurilo Ijanc <[email protected]>2026-07-26 12:28:10 -0300
committerMurilo Ijanc <[email protected]>2026-07-26 12:28:10 -0300
commitb71faa6e95a0736f1ff171e006b171467b65db90 (patch)
tree7580c3ab515e8f50726dc68dbc240995ff4a1a4c /CMakeLists.txt
downloadcpp-b71faa6e95a0736f1ff171e006b171467b65db90.tar.gz
Initial importv0.1.0
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt49
1 files changed, 49 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..7ae1fc9
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(cepis VERSION 0.1.0 LANGUAGES CXX)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+find_package(CURL REQUIRED)
+
+add_library(cepis
+ src/client.cpp
+ src/csv.cpp
+ src/http.cpp
+ src/json.cpp
+ src/models.cpp
+)
+add_library(cepis::cepis ALIAS cepis)
+
+target_include_directories(cepis
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}/src
+)
+target_link_libraries(cepis PRIVATE CURL::libcurl)
+target_compile_options(cepis PRIVATE -Wall -Wextra)
+
+add_executable(cepis-lookup examples/cepis_lookup.cpp)
+target_link_libraries(cepis-lookup PRIVATE cepis)
+target_compile_options(cepis-lookup PRIVATE -Wall -Wextra)
+
+include(CTest)
+if(BUILD_TESTING)
+ add_executable(cepis-tests
+ tests/test_cepis.cpp
+ tests/test_main.cpp
+ tests/test_server.cpp
+ )
+ target_include_directories(cepis-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tests)
+ target_link_libraries(cepis-tests PRIVATE cepis)
+ target_compile_options(cepis-tests PRIVATE -Wall -Wextra)
+ add_test(NAME cepis-tests COMMAND cepis-tests)
+endif()
+
+include(GNUInstallDirs)
+install(TARGETS cepis ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(DIRECTORY include/cepis DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})