Skip to content

Commit 422e8ee

Browse files
authored
Generate Bison output in CMake build tree (#1929)
Again, moving away from in-tree builds
1 parent 49a4da2 commit 422e8ee

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

src/CMakeLists.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@ if(BISON_VERSION VERSION_GREATER_EQUAL "3.7")
2727
set(BISON_FLAGS "${BISON_FLAGS} -Wcounterexamples")
2828
endif()
2929

30-
bison_target(ASM_PARSER "asm/parser.y"
31-
"${PROJECT_SOURCE_DIR}/src/asm/parser.cpp"
32-
COMPILE_FLAGS "${BISON_FLAGS}"
33-
DEFINES_FILE "${PROJECT_SOURCE_DIR}/src/asm/parser.hpp"
34-
)
30+
bison_target(asm_parser "asm/parser.y"
31+
"${CMAKE_CURRENT_BINARY_DIR}/parser.cpp"
32+
COMPILE_FLAGS "${BISON_FLAGS}")
3533
add_executable(rgbasm $<TARGET_OBJECTS:common>
36-
"${BISON_ASM_PARSER_OUTPUT_SOURCE}"
34+
"${BISON_asm_parser_OUTPUT_SOURCE}"
3735
"asm/actions.cpp"
3836
"asm/charmap.cpp"
3937
"asm/fixpoint.cpp"
@@ -54,14 +52,14 @@ add_executable(rgbasm $<TARGET_OBJECTS:common>
5452
"opmath.cpp"
5553
"verbosity.cpp"
5654
)
55+
cmake_path(GET BISON_asm_parser_OUTPUT_HEADER PARENT_PATH parser_header_dir)
56+
target_include_directories(rgbasm PRIVATE "${parser_header_dir}")
5757

58-
bison_target(LINKER_SCRIPT_PARSER "link/script.y"
59-
"${PROJECT_SOURCE_DIR}/src/link/script.cpp"
60-
COMPILE_FLAGS "${BISON_FLAGS}"
61-
DEFINES_FILE "${PROJECT_SOURCE_DIR}/src/link/script.hpp"
62-
)
58+
bison_target(linker_script_parser "link/script.y"
59+
"${CMAKE_CURRENT_BINARY_DIR}/script.cpp"
60+
COMPILE_FLAGS "${BISON_FLAGS}")
6361
add_executable(rgblink $<TARGET_OBJECTS:common>
64-
"${BISON_LINKER_SCRIPT_PARSER_OUTPUT_SOURCE}"
62+
"${BISON_linker_script_parser_OUTPUT_SOURCE}"
6563
"link/assign.cpp"
6664
"link/fstack.cpp"
6765
"link/lexer.cpp"
@@ -80,6 +78,8 @@ add_executable(rgblink $<TARGET_OBJECTS:common>
8078
"opmath.cpp"
8179
"verbosity.cpp"
8280
)
81+
cmake_path(GET BISON_linker_script_parser_OUTPUT_HEADER PARENT_PATH parser_header_dir)
82+
target_include_directories(rgblink PRIVATE "${parser_header_dir}")
8383

8484
add_executable(rgbfix $<TARGET_OBJECTS:common>
8585
"fix/fix.cpp"

0 commit comments

Comments
 (0)