`circle` cannot compile `googletest`.
I really like the design of the circle, it gives me an unparalleled experience in programming in C++.
I can't wait to use circle in some of my projects, but currently I'm running into some unavoidable problems. :(
I have a sample repo here that is fully functional (albeit very rudimentary).
Because CLion currently has some hardcoding for cmake to check the CXX compiler and get the compiler information can't be avoided, so I have to use VS+WSL for development. :)
This repository has a bash script, run it before opening the project from VS, it will generate a CMakeSettings.json, VS relies on this file to run the CMake configuration.
Below is my CMake output:
1> /usr/bin/cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="/mnt/e/circle-googletest/WSL_Debug/install" -G "Ninja" -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/circle -DCONFIG_CXX_COMPILER_HAS_META=true /mnt/e/circle-googletest/CMakeLists.txt;
1> [CMake] -- The CXX compiler identification is Clang 5.0.0
1> [CMake] -- Detecting CXX compiler ABI info
1> [CMake] -- Detecting CXX compiler ABI info - failed
1> [CMake] -- Check for working CXX compiler: /usr/bin/circle
1> [CMake] -- Check for working CXX compiler: /usr/bin/circle - works
1> [CMake] -- Detecting CXX compile features
1> [CMake] -- Detecting CXX compile features - done
1> [CMake] Setting compile parameters for project circle-googletest-standalone-test...
1> [CMake] Setting compile parameters for project circle-googletest-unit-test...
1> [CMake] -- Configuring done
1> [CMake] -- Generating done
1> [CMake] -- Build files have been written to: /mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-download
1> [CMake] [1/9] Creating directories for 'googletest'
1> [CMake] [2/9] Performing download step (git clone) for 'googletest'
1> [CMake] Cloning into 'googletest-src'...
1> [CMake] Already on 'main'
1> [CMake] Your branch is up to date with 'origin/main'.
1> [CMake] [3/9] Performing update step for 'googletest'
1> [CMake] [4/9] No patch step for 'googletest'
1> [CMake] [5/9] No configure step for 'googletest'
1> [CMake] [6/9] No build step for 'googletest'
1> [CMake] [7/9] No install step for 'googletest'
1> [CMake] [8/9] No test step for 'googletest'
1> [CMake] [9/9] Completed 'googletest'
1> [CMake] -- The C compiler identification is GNU 9.4.0
1> [CMake] -- Detecting C compiler ABI info
1> [CMake] -- Detecting C compiler ABI info - done
1> [CMake] -- Check for working C compiler: /usr/bin/gcc - skipped
1> [CMake] -- Detecting C compile features
1> [CMake] -- Detecting C compile features - done
1> [CMake] -- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
1> [CMake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
1> [CMake] -- Looking for pthread_create in pthreads
1> [CMake] -- Looking for pthread_create in pthreads - not found
1> [CMake] -- Looking for pthread_create in pthread
1> [CMake] -- Looking for pthread_create in pthread - found
1> [CMake] -- Found Threads: TRUE
1> [CMake] -- Configuring done
1> [CMake] -- Generating done
1> [CMake] -- Build files have been written to: /mnt/e/circle-googletest/WSL_Debug/build
1> [CMake]
Below is my build output (of circle-googletest-unit-test):
cd /mnt/e/circle-googletest/WSL_Debug/build;/usr/bin/cmake --build /mnt/e/circle-googletest/WSL_Debug/build --target circle-googletest-unit-test --config Debug;
[1/6] Building CXX object unit_test/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
FAILED: unit_test/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
/usr/bin/circle -I/mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest/include -I/mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest -g -Wall -Wshadow -Wconversion -DGTEST_HAS_PTHREAD=1 -fexceptions -W -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wredundant-decls -MD -MT unit_test/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o -MF unit_test/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o.d -o unit_test/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest/src/gtest-all.cc
circle: Unknown command line argument '-Wshadow'. Try: '/usr/bin/circle --help'
circle: Did you mean '--shader'?
circle: Unknown command line argument '-Wconversion'. Try: '/usr/bin/circle --help'
circle: Did you mean '--dumpversion'?
circle: Unknown command line argument '-W'. Try: '/usr/bin/circle --help'
circle: Did you mean '-D'?
circle: Unknown command line argument '-Wpointer-arith'. Try: '/usr/bin/circle --help'
circle: Did you mean '--print-paths'?
circle: Unknown command line argument '-Wreturn-type'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-return-type'?
circle: Unknown command line argument '-Wcast-qual'. Try: '/usr/bin/circle --help'
circle: Did you mean '--stat'?
circle: Unknown command line argument '-Wwrite-strings'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-writable-strings'?
circle: Unknown command line argument '-Wswitch'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-switch'?
circle: Unknown command line argument '-Wunused-parameter'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-unused-parameter'?
circle: Unknown command line argument '-Wcast-align'. Try: '/usr/bin/circle --help'
circle: Did you mean '--stdlib'?
circle: Unknown command line argument '-Wchar-subscripts'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wformat-security'?
circle: Unknown command line argument '-Winline'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-inline'?
circle: Unknown command line argument '-Wredundant-decls'. Try: '/usr/bin/circle --help'
circle: Did you mean '--pedantic'?
[2/6] Building CXX object unit_test/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
FAILED: unit_test/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
/usr/bin/circle -isystem /mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest/include -isystem /mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest -g -Wall -Wshadow -Wconversion -DGTEST_HAS_PTHREAD=1 -fexceptions -W -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wredundant-decls -MD -MT unit_test/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -MF unit_test/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o.d -o unit_test/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /mnt/e/circle-googletest/WSL_Debug/build/unit_test/googletest-src/googletest/src/gtest_main.cc
circle: Unknown command line argument '-Wshadow'. Try: '/usr/bin/circle --help'
circle: Did you mean '--shader'?
circle: Unknown command line argument '-Wconversion'. Try: '/usr/bin/circle --help'
circle: Did you mean '--dumpversion'?
circle: Unknown command line argument '-W'. Try: '/usr/bin/circle --help'
circle: Did you mean '-D'?
circle: Unknown command line argument '-Wpointer-arith'. Try: '/usr/bin/circle --help'
circle: Did you mean '--print-paths'?
circle: Unknown command line argument '-Wreturn-type'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-return-type'?
circle: Unknown command line argument '-Wcast-qual'. Try: '/usr/bin/circle --help'
circle: Did you mean '--stat'?
circle: Unknown command line argument '-Wwrite-strings'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-writable-strings'?
circle: Unknown command line argument '-Wswitch'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-switch'?
circle: Unknown command line argument '-Wunused-parameter'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-unused-parameter'?
circle: Unknown command line argument '-Wcast-align'. Try: '/usr/bin/circle --help'
circle: Did you mean '--stdlib'?
circle: Unknown command line argument '-Wchar-subscripts'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wformat-security'?
circle: Unknown command line argument '-Winline'. Try: '/usr/bin/circle --help'
circle: Did you mean '--Wno-inline'?
circle: Unknown command line argument '-Wredundant-decls'. Try: '/usr/bin/circle --help'
circle: Did you mean '--pedantic'?
[3/6] Building CXX object unit_test/CMakeFiles/circle-googletest-unit-test.dir/src/main.cpp.o
ninja: build stopped: subcommand failed.
It can be seen that googletest will pass many compiler options to circle when compiling, but currently circle does not support them, and then the compilation stops. :(