diff --git a/CMakeLists.txt b/CMakeLists.txt index 80901ca..a000b88 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,24 +1,36 @@ -cmake_minimum_required(VERSION 3.0.0) -project(nodepp VERSION 1.3.0) +cmake_minimum_required(VERSION 3.10) +project(Nodepp_Examples) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(NODEPP_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") -# Search for ZLIB +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +find_package(Threads REQUIRED) +find_package(OpenSSL REQUIRED) find_package(ZLIB REQUIRED) -if(NOT ZLIB_FOUND) - message(FATAL_ERROR "ZLIB not found. Please install libz-dev or equivalent files.") -endif() -# Search for OpenSSL -find_package(OpenSSL REQUIRED COMPONENTS Crypto SSL) -if(NOT OpenSSL_FOUND) - message(FATAL_ERROR "OpenSSL not found. Please install libopenssl-dev or equivalent files.") -endif() +# 1. Discover all examples +file(GLOB EXAMPLE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/examples/*.cpp") + +# 2. EXCLUDE the failing 3-Conio.cpp example +# This removes any entry from the list that contains "3-Conio" +list(FILTER EXAMPLE_FILES EXCLUDE REGEX "3-Conio|WSS|WS-load-test|57-mutex") + +# 3. Process the remaining examples +foreach(SOURCE_FILE ${EXAMPLE_FILES}) + get_filename_component(EXE_NAME ${SOURCE_FILE} NAME_WE) + + add_executable(${EXE_NAME} ${SOURCE_FILE}) + + target_compile_options(${EXE_NAME} PRIVATE -fpermissive) + + target_link_libraries(${EXE_NAME} PRIVATE + Threads::Threads + OpenSSL::SSL + OpenSSL::Crypto + ZLIB::ZLIB + ) +endforeach() -# interface-target -add_library(nodepp INTERFACE) -target_include_directories(nodepp INTERFACE ${NODEPP_INCLUDE_DIR}) -target_link_libraries(nodepp INTERFACE -lssl -lcrypto -lz $<$,$>:ws2_32> ) \ No newline at end of file