Skip to content

How to build this project under msys2/mingw64 #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
asmwarrior opened this issue Feb 3, 2025 · 4 comments
Open

How to build this project under msys2/mingw64 #43

asmwarrior opened this issue Feb 3, 2025 · 4 comments

Comments

@asmwarrior
Copy link

Hi, I have clone both the common and cppparser code repo, and put them in the same directory /g/code-temp/parser.

Now, here is the build log I use:

abc@mypc MINGW64 /g/code-temp/parser/cppparser/builds
# cmake .. -G "MinGW Makefiles"
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: F:/msys2/mingw64/bin/cc.exe - 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: F:/msys2/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at G:/code-temp/parser/common/third_party/boost_tp/cmake/CMakeLists.txt:1
(cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Found 'flex' as G:/code-temp/parser/cppparser/cppparser/third_party/flex_tp/flex.exe
Markdown-pp NOT FOUND: README cannot be updated.
-- Configuring done (2.2s)
-- Generating done (0.3s)
-- Build files have been written to: G:/code-temp/parser/cppparser/builds

abc@mypc MINGW64 /g/code-temp/parser/cppparser/builds
# mingw32-make
[  1%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_attribute_specifier_sequence_contain
er.cpp.obj
G:/code-temp/parser/cppparser/cppast/src/cpp_attribute_specifier_sequence_container.cpp:4:10: error:
 'cppast/cpp_attribute_specifier_sequence_container.h' file not found [clang-diagnostic-error]
    4 | #include "cppast/cpp_attribute_specifier_sequence_container.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Error while processing G:/code-temp/parser/cppparser/cppast/src/cpp_attribute_specifier_sequence_con
tainer.cpp.
Found compiler error(s).
mingw32-make[2]: *** [cppast\CMakeFiles\cppast.dir\build.make:79: cppast/CMakeFiles/cppast.dir/src/c
pp_attribute_specifier_sequence_container.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:256: cppast/CMakeFiles/cppast.dir/all] Error 2
mingw32-make: *** [Makefile:145: all] Error 2

Any ideas?

I'm using the msys2's mingw64 platform, see here: MSYS2

Thanks.

@asmwarrior
Copy link
Author

OK, the build issue can be resolved by comment out such line in the root's CMakeLists.txt.

# set(CLANG_TIDY_COMMAND "clang-tidy" "--config-file=${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy")

And here is the build log:

# mingw32-make
[  1%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_attribute_specifier_sequence_container.cpp.obj
[  2%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_blob.cpp.obj
[  3%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_compound.cpp.obj
[  4%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_control_blocks.cpp.obj
[  5%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_entity_info_accessor.cpp.obj
[  6%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_enum.cpp.obj
[  7%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_expression.cpp.obj
[  8%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_function.cpp.obj
[  9%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_lambda.cpp.obj
[ 10%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_templatable_entity.cpp.obj
[ 11%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_template_param.cpp.obj
[ 12%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cpp_var_type.cpp.obj
[ 13%] Building CXX object cppast/CMakeFiles/cppast.dir/src/cppast.cpp.obj
[ 14%] Linking CXX static library libcppast.a
[ 14%] Built target cppast
[ 15%] Building CXX object cppast/test/CMakeFiles/cppasttest.dir/main.cpp.obj
[ 16%] Building CXX object cppast/test/CMakeFiles/cppasttest.dir/cpp_entity_cast_test.cpp.obj
[ 17%] Linking CXX executable cppasttest.exe
[ 17%] Built target cppasttest
[ 18%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/closure.c.obj
[ 19%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/dtor.c.obj
[ 20%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/error.c.obj
[ 21%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/lalr.c.obj
[ 22%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/lr0.c.obj
[ 23%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/main.c.obj
[ 25%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/mkpar.c.obj
[ 26%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/mstring.c.obj
[ 27%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/output.c.obj
[ 28%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/reader.c.obj
[ 29%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/readskel.c.obj
[ 30%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/skeleton.c.obj
[ 31%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/symtab.c.obj
[ 32%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/verbose.c.obj
[ 33%] Building C object cppparser/third_party/btyacc_tp/CMakeFiles/btyacc.dir/btyacc/warshall.c.obj
[ 34%] Linking C executable btyacc.exe
[ 34%] Built target btyacc
[ 35%] Generating G:/code-temp/parser/cppparser/cppparser/src/parser.tab.cpp, G:/code-temp/parser/cppparser/cppparser/src/parser.tab.h
third_party\btyacc_tp\btyacc.exe: 2 rules never reduced
third_party\btyacc_tp\btyacc.exe: 2206 shift/reduce conflicts, 846 reduce/reduce conflicts.
[ 36%] Generating G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp
[ 37%] Building CXX object cppparser/CMakeFiles/cppparser_lex_and_yacc.dir/src/parser.lex.cpp.obj
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp: In function 'int yylex()':
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:5269:32: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 5269 |         register yy_state_type yy_current_state;
      |                                ^~~~~~~~~~~~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:5270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 5270 |         register char *yy_cp, *yy_bp;
      |                        ^~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:5270:32: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 5270 |         register char *yy_cp, *yy_bp;
      |                                ^~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:5271:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 5271 |         register int yy_act;
      |                      ^~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:5321:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 5321 |                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
      |                                          ^~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp: In function 'int yy_get_next_buffer()':
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:7909:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 7909 |         register char *dest = yy_current_buffer->yy_ch_buf;
      |                        ^~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:7910:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 7910 |         register char *source = yytext_ptr;
      |                        ^~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:7911:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 7911 |         register int number_to_move, i;
      |                      ^~~~~~~~~~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:7911:38: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 7911 |         register int number_to_move, i;
      |                                      ^
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp: In function 'yy_state_type yy_get_previous_state()':
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:8041:32: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 8041 |         register yy_state_type yy_current_state;
      |                                ^~~~~~~~~~~~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:8042:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 8042 |         register char *yy_cp;
      |                        ^~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:8051:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 8051 |                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
      |                                  ^~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp: In function 'yy_state_type yy_try_NUL_trans(yy_state_type)':
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:8079:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 8079 |         register int yy_is_jam;
      |                      ^~~~~~~~~
G:/code-temp/parser/cppparser/cppparser/src/parser.lex.cpp:8081:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
 8081 |         register YY_CHAR yy_c = 1;
      |                          ^~~~
[ 38%] Building CXX object cppparser/CMakeFiles/cppparser_lex_and_yacc.dir/src/parser.tab.cpp.obj
[ 38%] Built target cppparser_lex_and_yacc
[ 39%] Building CXX object cppparser/CMakeFiles/cppparser.dir/src/cpp_program.cpp.obj
[ 40%] Building CXX object cppparser/CMakeFiles/cppparser.dir/src/cppparser.cpp.obj
[ 41%] Building CXX object cppparser/CMakeFiles/cppparser.dir/src/lexer-helper.cpp.obj
[ 42%] Building CXX object cppparser/CMakeFiles/cppparser.dir/src/utils.cpp.obj
[ 43%] Linking CXX static library libcppparser.a
[ 43%] Built target cppparser
[ 44%] Building CXX object cppwriter/CMakeFiles/cppwriter.dir/src/cppwriter.cpp.obj
[ 45%] Linking CXX static library libcppwriter.a
[ 45%] Built target cppwriter
[ 46%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/cmdline.cpp.obj
[ 47%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/config_file.cpp.obj
[ 48%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/convert.cpp.obj
[ 50%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/options_description.cpp.obj
[ 51%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/parsers.cpp.obj
[ 52%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/positional_options.cpp.obj
[ 53%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/split.cpp.obj
[ 54%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/utf8_codecvt_facet.cpp.obj
[ 55%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/value_semantic.cpp.obj
[ 56%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/variables_map.cpp.obj
[ 57%] Building CXX object boost/CMakeFiles/boost_program_options.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/program_options/src/winmain.cpp.obj
[ 58%] Linking CXX static library libboost_program_options.a
[ 58%] Built target boost_program_options
[ 59%] Building CXX object cppparser/test/CMakeFiles/cppparsertest.dir/app/cppparsertest.cpp.obj
[ 60%] Linking CXX executable cppparsertest.exe
[ 60%] Built target cppparsertest
[ 61%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/main.cpp.obj
[ 62%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/test-hello-world.cpp.obj
[ 63%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/attribute-specifier-sequence.cpp.obj
[ 64%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/disabled-code-test.cpp.obj
[ 65%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/error-handler-test.cpp.obj
[ 66%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/expr-test.cpp.obj
[ 67%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/initializer-list-test.cpp.obj
[ 68%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/namespace-test.cpp.obj
[ 69%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/preprocessor-test.cpp.obj
[ 70%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/template-test.cpp.obj
[ 71%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/uniform-init-test.cpp.obj
[ 72%] Building CXX object cppparser/test/CMakeFiles/cppparserunittest.dir/unit/vardecl-test.cpp.obj
[ 73%] Linking CXX executable cppparserunittest.exe
[ 73%] Built target cppparserunittest
[ 75%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/main.cpp.obj
[ 76%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/attribute-specifier-sequence.cpp.obj
[ 77%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/disabled-code-test.cpp.obj
[ 78%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/error-handler-test.cpp.obj
[ 79%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/expr-test.cpp.obj
[ 80%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/initializer-list-test.cpp.obj
[ 81%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/namespace-test.cpp.obj
[ 82%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/preprocessor-test.cpp.obj
[ 83%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/template-test.cpp.obj
[ 84%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/uniform-init-test.cpp.obj
[ 85%] Building CXX object cppparser/test/CMakeFiles/cppparserembeddedsnippetvalidity.dir/unit/vardecl-test.cpp.obj
[ 86%] Linking CXX executable cppparserembeddedsnippetvalidity.exe
[ 86%] Built target cppparserembeddedsnippetvalidity
[ 87%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/codecvt_error_category.cpp.obj
[ 88%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/directory.cpp.obj
[ 89%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/exception.cpp.obj
[ 90%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/operations.cpp.obj
[ 91%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/path.cpp.obj
[ 92%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/path_traits.cpp.obj
[ 93%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/portability.cpp.obj
[ 94%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/unique_path.cpp.obj
[ 95%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/utf8_codecvt_facet.cpp.obj
[ 96%] Building CXX object boost/CMakeFiles/boost_filesystem.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/filesystem/src/windows_file_codecvt.cpp.obj
[ 97%] Linking CXX static library libboost_filesystem.a
[ 97%] Built target boost_filesystem
[ 98%] Building CXX object boost/CMakeFiles/boost_system.dir/G_/code-temp/parser/common/third_party/boost_tp/libs/system/src/error_code.cpp.obj
[100%] Linking CXX static library libboost_system.a
[100%] Built target boost_system

@asmwarrior
Copy link
Author

It looks like the test works OK

# mingw32-make test
Running tests...
Test project G:/code-temp/parser/cppparser/builds
    Start 1: CppAstTest
1/3 Test #1: CppAstTest .......................   Passed    0.02 sec
    Start 2: ParserTest
2/3 Test #2: ParserTest .......................   Passed    8.53 sec
    Start 3: ParserUnitTest
3/3 Test #3: ParserUnitTest ...................   Passed    0.02 sec

100% tests passed, 0 tests failed out of 3

Total Test time (real) =   8.59 sec

@satya-das
Copy link
Owner

So, other than the clang-diagnostic-error your issue is resolved?

@asmwarrior
Copy link
Author

So, other than the clang-diagnostic-error your issue is resolved?

Yes. Correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants