@@ -3,25 +3,25 @@ project(OpenLanguage)
33
44# --- C++ Preprocessor Command Resolution ---
55
6- # Attempt to resolve C preprocessor in priority order: clang++, g++ , cpp
7- find_program (CLANGPP_EXECUTABLE NAMES clang++ )
8- find_program (GPP_EXECUTABLE NAMES g++ )
6+ # Attempt to resolve C preprocessor in priority order: gcc, clang , cpp
7+ find_program (GCC_EXECUTABLE NAMES gcc )
8+ find_program (CLANG_EXECUTABLE NAMES clang )
99find_program (CPP_EXECUTABLE NAMES cpp)
1010
11- if (CLANGPP_EXECUTABLE )
12- set (CPP_COMMAND ${CLANGPP_EXECUTABLE } )
13- set (CPP_FLAGS -E -P)
14- message (STATUS "Using clang++ as C preprocessor: ${CPP_COMMAND} " )
15- elseif (GPP_EXECUTABLE )
16- set (CPP_COMMAND ${GPP_EXECUTABLE } )
17- set (CPP_FLAGS -E -P)
18- message (STATUS "Using g++ as C preprocessor: ${CPP_COMMAND} " )
11+ if (GCC_EXECUTABLE )
12+ set (CPP_COMMAND ${GCC_EXECUTABLE } )
13+ set (CPP_FLAGS -E -P -fdirectives-only -x assembler-with-cpp )
14+ message (STATUS "Using gcc as C preprocessor: ${CPP_COMMAND} " )
15+ elseif (CLANG_EXECUTABLE )
16+ set (CPP_COMMAND ${CLANG_EXECUTABLE } )
17+ set (CPP_FLAGS -E -P -fdirectives-only -x c++ -Wno-invalid-pp-token -nostdinc -nostdlibinc -fkeep- system -includes )
18+ message (STATUS "Using clang as C preprocessor: ${CPP_COMMAND} " )
1919elseif (CPP_EXECUTABLE)
2020 set (CPP_COMMAND ${CPP_EXECUTABLE} )
21- set (CPP_FLAGS -P)
21+ set (CPP_FLAGS -P -Wno-invalid-pp-token )
2222 message (STATUS "Using cpp as C preprocessor: ${CPP_COMMAND} " )
2323else ()
24- message (FATAL_ERROR "No C preprocessor found. Please install clang++, g++ , or cpp." )
24+ message (FATAL_ERROR "No C preprocessor found. Please install clang, gcc , or cpp." )
2525endif ()
2626
2727# --- RID Detection and Configuration ---
@@ -101,7 +101,7 @@ foreach(YACC_FILE ${YACC_FILES})
101101 add_custom_command (
102102 TARGET process PRE_BUILD
103103 COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
104- COMMAND ${CPP_COMMAND} ${CPP_FLAGS} ${YACC_FILE} -o ${OUTPUT_FILE} -Wno-invalid-pp-token
104+ COMMAND ${CPP_COMMAND} ${CPP_FLAGS} ${YACC_FILE} -o ${OUTPUT_FILE}
105105 COMMENT "Processing ${YACC_FILE} -> ${OUTPUT_FILE} using ${CPP_COMMAND} "
106106 )
107107endforeach ()
@@ -117,7 +117,7 @@ foreach(LEX_FILE ${LEX_FILES})
117117 add_custom_command (
118118 TARGET process PRE_BUILD
119119 COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTPUT_DIR}
120- COMMAND ${CPP_COMMAND} ${CPP_FLAGS} ${LEX_FILE} -o ${OUTPUT_FILE} -Wno-invalid-pp-token
120+ COMMAND ${CPP_COMMAND} ${CPP_FLAGS} ${LEX_FILE} -o ${OUTPUT_FILE}
121121 COMMENT "Processing ${LEX_FILE} -> ${OUTPUT_FILE} using ${CPP_COMMAND} "
122122 )
123123endforeach ()
0 commit comments