Trying to get it to load the test directory and create the SocketText executable

This commit is contained in:
2024-08-13 13:28:12 -04:00
parent eff1c39a1f
commit c42962893a
5 changed files with 89 additions and 22 deletions

View File

@@ -1,21 +1,49 @@
cmake_minimum_required(VERSION 2.9)
cmake_minimum_required(VERSION 3.18..3.28)
set(CMAKE_CXX_STANDARD 20)
project(Sockets)
project(Sockets
VERSION 1.1
LANGUAGES CXX)
include(CTest)
file(GLOB SOURCES src/Sockets/*.cpp)
include_directories(include)
add_library(${PROJECT_NAME} SHARED ${SOURCES} )
if (PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
message(FATAL_ERROR "In-source builds are not allowed")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra")
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME})
include(cmake/CPM.cmake)
file(GLOB HEADERS include/Sockets/*.hpp)
file(GLOB_RECURSE HEADERS "include/Sockets/*.hpp" "include/Sockets/*.h")
file(GLOB_RECURSE SOURCES "src/Sockets/*.cpp")
include_directories(include)
if (UNIX)
add_library(Sockets SHARED ${SOURCES} )
endif()
if (WIN32)
add_library(Sockets STATIC ${SOURCES})
endif()
set_target_properties(Sockets PROPERTIES LINKER_LANGUAGE CXX)
CPMAddPackage(
NAME jtest
URL https://git.redacted.cc/josh/jtest/archive/Prerelease-5.zip
)
target_include_directories(Sockets PUBLIC ${jtest_SOURCE_DIR}/include)
target_link_libraries(Sockets PUBLIC jtest)
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME})
install(FILES ${HEADERS} DESTINATION include/${PROJECT_NAME})
add_subdirectory(tests)

View File

@@ -3,6 +3,18 @@ C++ TCP/UDP Sockets library
## What's inside?
### Low Level API
TcpSocket
### Higher-order Abstractions
TcpServer
TcpClient
UdpServer
UdpClient
## Compiling
## Examples

24
cmake/CPM.cmake Normal file
View File

@@ -0,0 +1,24 @@
# SPDX-License-Identifier: MIT
#
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
set(CPM_DOWNLOAD_VERSION 0.38.7)
set(CPM_HASH_SUM "83e5eb71b2bbb8b1f2ad38f1950287a057624e385c238f6087f94cdfc44af9c5")
if(CPM_SOURCE_CACHE)
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
else()
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
endif()
# Expand relative path. This is important if the provided path contains a tilde (~)
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
file(DOWNLOAD
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
)
include(${CPM_DOWNLOAD_LOCATION})

View File

@@ -1,8 +1,10 @@
file(GLOB_RECURSE TEST_SRCS "*.cpp")
add_executable(Test ${TEST_SRCS})
target_link_libraries(Test PUBLIC Sockets)
find_package(GTest REQUIRED)
target_link_libraries(Test PRIVATE GTest::gtest)
include_directories("include")
include_directories("../include/Sockets")
add_test(NAME "SocketTests" COMMAND SocketTests)
cmake_minimum_required(VERSION 3.18...3.28)
file(GLOB_RECURSE TEST_SRCS "*.hpp")
add_executable(SocketTest tests.cpp)
target_include_directories(SocketTest PUBLIC "include" $TEST_SRCS)
target_link_libraries(SocketTest PUBLIC Sockets)

View File

@@ -1,6 +1,7 @@
#include <gtest/gtest.h>
GTEST_API_ int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
#include <iostream>
int main()
{
std::cout << "Tests coming soon!!" << std::endl;
}