Create new Project
- Create a repository in my ClionProjects folder
cd ~/ClionProjects
mkdir .repo
cd .repo
- Clone the DownloadProject from github
git clone https://github.com/Crascit/DownloadProject.git
- Create a C++ project with a src and test directory
Add following files:
CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
project(MyProjectName)
add_subdirectory(src)
add_subdirectory(test)
src/CMakeLists.txt
#set(core_SRCS ADD ALL SOURCE FILES HERE)
add_library(core ${core_SRCS})
add_executable(exe main.cpp)
target_link_libraries(exe core)
[We compile a library so we can include it inside the Test project]
test/CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
set(REPO ~/ClionProjects/.repo)
project(Test)
project(Example)
include(CTest)
enable_testing()
#set(gtest_disable_pthreads on) #needed in MinGW
include(${REPO}/DownloadProject/DownloadProject.cmake)
download_project(
PROJ googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
UPDATE_DISCONNECTED 1
)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
#set(test_SRCS ADD ALL TEST SOURCE FILES HERE)
add_executable(runUnitTests gtest.cpp ${test_SRCS})
target_link_libraries(runUnitTests gtest gmock core)
#add_test(runUnitTests runUnitTests) #included in all tutorials but I don't know what it actually does.
test/gtest.cpp
#include "gtest/gtest.h"
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Note: if you work yourself on a git Project it is better to include the DownloadProject.cmake
and DownloadProjects.CmakeLists.cmake.in
files inside the project.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…