Skip to content

Commit

Permalink
build: Add the option to generate compile_commands.json on Windows vi…
Browse files Browse the repository at this point in the history
…a vcbuild.bat

This also needs nodejs/gyp-next#238
  • Loading branch information
segevfiner committed Mar 30, 2024
1 parent 021cf91 commit d1ecc81
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
8 changes: 6 additions & 2 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -2164,8 +2164,9 @@ def make_bin_override():

if options.compile_commands_json:
gyp_args += ['-f', 'compile_commands_json']
os.path.islink('./compile_commands.json') and os.unlink('./compile_commands.json')
os.symlink('./out/' + config['BUILDTYPE'] + '/compile_commands.json', './compile_commands.json')
if sys.platform != 'win32':
os.path.islink('./compile_commands.json') and os.unlink('./compile_commands.json')
os.symlink('./out/' + config['BUILDTYPE'] + '/compile_commands.json', './compile_commands.json')

# pass the leftover non-whitespace positional arguments to GYP
gyp_args += [arg for arg in args if not str.isspace(arg)]
Expand All @@ -2175,4 +2176,7 @@ def make_bin_override():

print_verbose("running: \n " + " ".join(['python', 'tools/gyp_node.py'] + gyp_args))
run_gyp(gyp_args)
if sys.platform == 'win32':
os.path.isfile('./compile_commands.json') and os.unlink('./compile_commands.json')
shutil.copy2('./out/' + config['BUILDTYPE'] + '/compile_commands.json', './compile_commands.json')
info('configure completed successfully')
3 changes: 3 additions & 0 deletions vcbuild.bat
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ set openssl_no_asm=
set no_shared_roheap=
set doc=
set extra_msbuild_args=
set compile_commands=
set exit_code=0

:next-arg
Expand Down Expand Up @@ -144,6 +145,7 @@ if /i "%1"=="openssl-no-asm" set openssl_no_asm=1&goto arg-ok
if /i "%1"=="no-shared-roheap" set no_shared_roheap=1&goto arg-ok
if /i "%1"=="doc" set doc=1&goto arg-ok
if /i "%1"=="binlog" set extra_msbuild_args=/binaryLogger:%config%\node.binlog&goto arg-ok
if /i "%1"=="compile-commands" set compile_commands=1&goto arg-ok

echo Error: invalid command line option `%1`.
exit /b 1
Expand Down Expand Up @@ -199,6 +201,7 @@ if defined debug_nghttp2 set configure_flags=%configure_flags% --debug-nghttp
if defined openssl_no_asm set configure_flags=%configure_flags% --openssl-no-asm
if defined no_shared_roheap set configure_flags=%configure_flags% --disable-shared-readonly-heap
if defined DEBUG_HELPER set configure_flags=%configure_flags% --verbose
if defined compile_commands set configure_flags=%configure_flags% -C
if "%target_arch%"=="x86" if "%PROCESSOR_ARCHITECTURE%"=="AMD64" set configure_flags=%configure_flags% --no-cross-compiling

if not exist "%~dp0deps\icu" goto no-depsicu
Expand Down

0 comments on commit d1ecc81

Please sign in to comment.