> mkdir build
> cd build
> cmake ..
> make -j$(nproc)
> ctest -j$(nproc)
cmake构建结果如下:
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project: 'cocktail'
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib/x86_64-linux-gnu/libffi.so
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib/x86_64-linux-gnu/libtinfo.so
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.13")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- unittest files found: Basic.t.cc
-- Configuring done
-- Generating done
-- Build files have been written to: /carbon-blog/code/project_structure/build
make构建结果如下:
[ 25%] Building CXX object CMakeFiles/cocktail.dir/lib/Lexer/Basic.cc.o
[ 50%] Linking CXX static library libcocktail.a
[ 50%] Built target cocktail
[ 75%] Building CXX object unittests/Lexer/CMakeFiles/Basic.t.dir/Basic.t.cc.o
[100%] Linking CXX executable Basic.t
[100%] Built target Basic.t
ctest构建结果如下:
Test project /carbon-blog/code/project_structure/build
Start 1: Basic.t
1/2 Test #1: Basic.t .......................... Passed 0.01 sec
Start 2: Basic.t-memory-check
2/2 Test #2: Basic.t-memory-check ............. Passed 0.97 sec
100% tests passed, 0 tests failed out of 2
Total Test time (real) = 0.98 sec