Skip to content

Commit bb88cae

Browse files
danbevrefack
authored andcommitted
build: fix ninja build failure
When working on commit 6a09a69 ("build: enable cctest to use generated objects") I did not take into account building with ninja: $ ./configure $ tools/gyp_node.py -f ninja $ ninja -C out/Release $ ln -fs out/Release/node node When ninja generated the ninja build files, src files that are relative to the src directory will be named with a dot instead of a path separator, for example: out/Release/obj/src/node/node.o would instead become: out/Release/obj/src/node.node.o This commit adds an additional variable for the type of object separator used for this case. Currently the check for if ninja is being used is a normal if statement as are the following os checks (win and aix). But the win and aix ones should only be evaluated if the build is not generated by ninja. This commit turns this logic into an if ninja else statement. PR-URL: #12484 Fixes: #12448 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
1 parent bee250c commit bb88cae

File tree

2 files changed

+50
-41
lines changed

2 files changed

+50
-41
lines changed

common.gypi

+8-11
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@
3535
'icu_use_data_file_flag%': 0,
3636

3737
'conditions': [
38+
['GENERATOR=="ninja"', {
39+
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
40+
'V8_BASE': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
41+
}, {
42+
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
43+
'V8_BASE%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
44+
}],
3845
['OS == "win"', {
3946
'os_posix': 0,
4047
'v8_postmortem_support%': 'false',
@@ -45,18 +52,8 @@
4552
'v8_postmortem_support%': 'true',
4653
}],
4754
['OS== "mac"', {
48-
'OBJ_DIR': '<(PRODUCT_DIR)/obj.target',
55+
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
4956
'V8_BASE': '<(PRODUCT_DIR)/libv8_base.a',
50-
}, {
51-
'conditions': [
52-
['GENERATOR=="ninja"', {
53-
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
54-
'V8_BASE': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
55-
}, {
56-
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
57-
'V8_BASE%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
58-
}],
59-
],
6057
}],
6158
['openssl_fips != ""', {
6259
'OPENSSL_PRODUCT': 'libcrypto.a',

node.gyp

+42-30
Original file line numberDiff line numberDiff line change
@@ -574,19 +574,31 @@
574574
'OBJ_GEN_PATH': '<(OBJ_DIR)/node/gen',
575575
'OBJ_TRACING_PATH': '<(OBJ_DIR)/node/src/tracing',
576576
'OBJ_SUFFIX': 'o',
577+
'OBJ_SEPARATOR': '/',
577578
'conditions': [
578579
['OS=="win"', {
579-
'OBJ_PATH': '<(OBJ_DIR)/node',
580-
'OBJ_GEN_PATH': '<(OBJ_DIR)/node',
581-
'OBJ_TRACING_PATH': '<(OBJ_DIR)/node',
582580
'OBJ_SUFFIX': 'obj',
583581
}],
584-
['OS=="aix"', {
585-
'OBJ_PATH': '<(OBJ_DIR)/node_base/src',
586-
'OBJ_GEN_PATH': '<(OBJ_DIR)/node_base/gen',
587-
'OBJ_TRACING_PATH': '<(OBJ_DIR)/node_base/src/tracing',
588-
}],
589-
],
582+
['GENERATOR=="ninja"', {
583+
'OBJ_PATH': '<(OBJ_DIR)/src',
584+
'OBJ_GEN_PATH': '<(OBJ_DIR)/gen',
585+
'OBJ_TRACING_PATH': '<(OBJ_DIR)/src/tracing',
586+
'OBJ_SEPARATOR': '/node.',
587+
}, {
588+
'conditions': [
589+
['OS=="win"', {
590+
'OBJ_PATH': '<(OBJ_DIR)/node',
591+
'OBJ_GEN_PATH': '<(OBJ_DIR)/node',
592+
'OBJ_TRACING_PATH': '<(OBJ_DIR)/node',
593+
}],
594+
['OS=="aix"', {
595+
'OBJ_PATH': '<(OBJ_DIR)/node_base/src',
596+
'OBJ_GEN_PATH': '<(OBJ_DIR)/node_base/gen',
597+
'OBJ_TRACING_PATH': '<(OBJ_DIR)/node_base/src/tracing',
598+
}],
599+
]}
600+
]
601+
],
590602
},
591603

592604
'includes': [
@@ -603,24 +615,24 @@
603615
],
604616

605617
'libraries': [
606-
'<(OBJ_GEN_PATH)/node_javascript.<(OBJ_SUFFIX)',
607-
'<(OBJ_PATH)/node_debug_options.<(OBJ_SUFFIX)',
608-
'<(OBJ_PATH)/async-wrap.<(OBJ_SUFFIX)',
609-
'<(OBJ_PATH)/env.<(OBJ_SUFFIX)',
610-
'<(OBJ_PATH)/node.<(OBJ_SUFFIX)',
611-
'<(OBJ_PATH)/node_buffer.<(OBJ_SUFFIX)',
612-
'<(OBJ_PATH)/node_i18n.<(OBJ_SUFFIX)',
613-
'<(OBJ_PATH)/node_url.<(OBJ_SUFFIX)',
614-
'<(OBJ_PATH)/util.<(OBJ_SUFFIX)',
615-
'<(OBJ_PATH)/string_bytes.<(OBJ_SUFFIX)',
616-
'<(OBJ_PATH)/string_search.<(OBJ_SUFFIX)',
617-
'<(OBJ_PATH)/stream_base.<(OBJ_SUFFIX)',
618-
'<(OBJ_PATH)/node_constants.<(OBJ_SUFFIX)',
619-
'<(OBJ_PATH)/node_revert.<(OBJ_SUFFIX)',
620-
'<(OBJ_TRACING_PATH)/agent.<(OBJ_SUFFIX)',
621-
'<(OBJ_TRACING_PATH)/node_trace_buffer.<(OBJ_SUFFIX)',
622-
'<(OBJ_TRACING_PATH)/node_trace_writer.<(OBJ_SUFFIX)',
623-
'<(OBJ_TRACING_PATH)/trace_event.<(OBJ_SUFFIX)',
618+
'<(OBJ_GEN_PATH)<(OBJ_SEPARATOR)node_javascript.<(OBJ_SUFFIX)',
619+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_debug_options.<(OBJ_SUFFIX)',
620+
'<(OBJ_PATH)<(OBJ_SEPARATOR)async-wrap.<(OBJ_SUFFIX)',
621+
'<(OBJ_PATH)<(OBJ_SEPARATOR)env.<(OBJ_SUFFIX)',
622+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node.<(OBJ_SUFFIX)',
623+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_buffer.<(OBJ_SUFFIX)',
624+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_i18n.<(OBJ_SUFFIX)',
625+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_url.<(OBJ_SUFFIX)',
626+
'<(OBJ_PATH)<(OBJ_SEPARATOR)util.<(OBJ_SUFFIX)',
627+
'<(OBJ_PATH)<(OBJ_SEPARATOR)string_bytes.<(OBJ_SUFFIX)',
628+
'<(OBJ_PATH)<(OBJ_SEPARATOR)string_search.<(OBJ_SUFFIX)',
629+
'<(OBJ_PATH)<(OBJ_SEPARATOR)stream_base.<(OBJ_SUFFIX)',
630+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_constants.<(OBJ_SUFFIX)',
631+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_revert.<(OBJ_SUFFIX)',
632+
'<(OBJ_TRACING_PATH)<(OBJ_SEPARATOR)agent.<(OBJ_SUFFIX)',
633+
'<(OBJ_TRACING_PATH)<(OBJ_SEPARATOR)node_trace_buffer.<(OBJ_SUFFIX)',
634+
'<(OBJ_TRACING_PATH)<(OBJ_SEPARATOR)node_trace_writer.<(OBJ_SUFFIX)',
635+
'<(OBJ_TRACING_PATH)<(OBJ_SEPARATOR)trace_event.<(OBJ_SUFFIX)',
624636
],
625637

626638
'defines': [
@@ -683,9 +695,9 @@
683695
'copies': [{
684696
'destination': '<(OBJ_DIR)/cctest/src',
685697
'files': [
686-
'<(OBJ_PATH)/node_dtrace_ustack.<(OBJ_SUFFIX)',
687-
'<(OBJ_PATH)/node_dtrace_provider.<(OBJ_SUFFIX)',
688-
'<(OBJ_PATH)/node_dtrace.<(OBJ_SUFFIX)',
698+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_dtrace_ustack.<(OBJ_SUFFIX)',
699+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_dtrace_provider.<(OBJ_SUFFIX)',
700+
'<(OBJ_PATH)<(OBJ_SEPARATOR)node_dtrace.<(OBJ_SUFFIX)',
689701
]},
690702
],
691703
}],

0 commit comments

Comments
 (0)