CMake: add lib skeleton and google-tests
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# ignore checkout dir for Google Tests
|
||||||
|
google-tests/lib
|
||||||
|
/.idea
|
||||||
|
/build
|
||||||
12
CMakeLists.txt
Normal file
12
CMakeLists.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
cmake_minimum_required(VERSION 4.1)
|
||||||
|
|
||||||
|
project(PasadaSuperProject)
|
||||||
|
|
||||||
|
option(PASADA_BUILD_TESTS "Build Google Tests" ON)
|
||||||
|
|
||||||
|
add_subdirectory(pasada-lib)
|
||||||
|
|
||||||
|
if(PASADA_BUILD_TESTS)
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(google-tests)
|
||||||
|
endif()
|
||||||
19
google-tests/CMakeLists.txt
Normal file
19
google-tests/CMakeLists.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
project(Google_Tests)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
|
# 'lib' is the folder with Google Test sources
|
||||||
|
add_subdirectory(lib)
|
||||||
|
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
|
||||||
|
|
||||||
|
# 'Google_Tests_run' is the target name
|
||||||
|
# 'test1.cpp test2.cpp' are source files with tests
|
||||||
|
add_executable(Google_Tests_run test1.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(Google_Tests_run pasada)
|
||||||
|
#target_include_directories(Google_Tests_run PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/pasada-lib/include")
|
||||||
|
|
||||||
|
target_link_libraries(Google_Tests_run gtest gtest_main)
|
||||||
|
#target_link_libraries(Google_Tests_run PRIVATE Pasada_Lib)
|
||||||
|
|
||||||
|
target_include_directories(Google_Tests_run PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../pasada-lib/include")
|
||||||
15
google-tests/test1.cpp
Normal file
15
google-tests/test1.cpp
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
//
|
||||||
|
// Created by david on 28.02.2026.
|
||||||
|
//
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include "library.h"
|
||||||
|
|
||||||
|
// Demonstrate some basic assertions.
|
||||||
|
TEST(HelloTest, BasicAssertions) {
|
||||||
|
// Expect two strings not to be equal.
|
||||||
|
EXPECT_STRNE("hello", "world from test1.cpp");
|
||||||
|
// Expect equality.
|
||||||
|
EXPECT_EQ(7 * 6, 42);
|
||||||
|
printf("asdf");
|
||||||
|
hello();
|
||||||
|
}
|
||||||
24
pasada-lib/CMakeLists.txt
Normal file
24
pasada-lib/CMakeLists.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
project(Pasada_Lib)
|
||||||
|
|
||||||
|
SET(PASADA_SRC
|
||||||
|
library.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
if(PASADA_BUILD_TESTS)
|
||||||
|
# must build a STATIC library for google-tests to successfully consume us
|
||||||
|
# (otherwise, strange runtime errors ensue when trying to call into the lib)
|
||||||
|
add_library(pasada STATIC
|
||||||
|
${PASADA_SRC}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
add_library(pasada SHARED
|
||||||
|
${PASADA_SRC}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_include_directories(pasada
|
||||||
|
PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
6
pasada-lib/include/library.h
Normal file
6
pasada-lib/include/library.h
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef LIBPASADA_LIBRARY_H
|
||||||
|
#define LIBPASADA_LIBRARY_H
|
||||||
|
|
||||||
|
void hello();
|
||||||
|
|
||||||
|
#endif // LIBPASADA_LIBRARY_H
|
||||||
7
pasada-lib/library.cpp
Normal file
7
pasada-lib/library.cpp
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#include "library.h"
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
void hello() {
|
||||||
|
std::cout << "Hello, World!" << std::endl;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user