I'm doing a project in C++ at present and experiencing mixed feelings about it. One of the worst things about using C++ is the necessity to come into contact with CMake, which is the bane of my existence. When I used to work on ProjectM, I used to wrestle with this system and ended up hating it. Anyway, now I'm starting a fresh C++ project, I started using the less popular (but far more ergonomic) SCons.
Anyway, like many C++ projects GoogleMock has a bias for CMake. So if you want
to use SCons to build instead, here is a tiny SConstruct
that you can use.
googletest_framework_root = "/home/amoe/vcs/googletest"
googletest_include_paths = [
googletest_framework_root + "/googletest",
googletest_framework_root + "/googletest/include",
googletest_framework_root + "/googlemock",
googletest_framework_root + "/googlemock/include"
]
gtest_all_path = googletest_framework_root + "/googletest/src/gtest-all.cc"
gmock_all_path = googletest_framework_root + "/googlemock/src/gmock-all.cc"
env = Environment(CPPPATH=googletest_include_paths)
env.Program(
target='main',
source=["main.cc", gtest_all_path, gmock_all_path],
LIBS=['pthread']
)
Where your main.cc
is a regular test driver, as such:
#include <gmock/gmock.h>
int main(int argc, char **argv) {
testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}
You'll need to find some answer to actually getting the source of the test framework into the build filesystem -- Google Test doesn't build as a system library. That could be git submodules, a download script, or just dumping the repository inside yours.