cmake_minimum_required(VERSION 3.14) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) project(planificador) include(FetchContent) FetchContent_Declare( tomlplusplus GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git GIT_TAG v3.3.0 ) FetchContent_MakeAvailable(tomlplusplus) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/libzmq-pkg-config) find_package(ZeroMQ QUIET) add_executable(planificador src/runner.cpp src/network.cpp src/config.cpp src/main.cpp) if (NOT ZeroMQ_FOUND) message(STATUS "ZeroMQ not found, using bundled version") FetchContent_Declare( zmq GIT_REPOSITORY https://github.com/zeromq/libzmq.git GIT_TAG v4.3.5 ) FetchContent_Declare( cppzmq GIT_REPOSITORY https://github.com/zeromq/cppzmq.git GIT_TAG v4.10.0 ) set(WITH_PERF_TOOL OFF) set(ENABLE_CPACK OFF) set(ZMQ_BUILD_TESTS OFF) set(WITH_TLS OFF) set(WITH_DOC OFF) set(BUILD_STATIC OFF) set(BUILD_SHARED ON) set(ZMQ_BUILD_TESTS OFF) set(CPPZMQ_BUILD_TESTS OFF) FetchContent_MakeAvailable(zmq cppzmq) include_directories(${zmq_SOURCE_DIR}/include) include_directories(${cppzmq_SOURCE_DIR}) target_link_libraries(planificador PRIVATE libzmq) else () target_link_libraries(planificador PRIVATE zmq) endif () target_compile_options(planificador PUBLIC -Wall -Wextra -pedantic) target_compile_features(planificador PUBLIC cxx_std_17) include_directories(${tomlplusplus_SOURCE_DIR}/include)