Top Level Namespace

Defined Under Namespace

Modules: Datadog

Constant Summary collapse

EXTENSION_NAME =

Tag the native extension library with the Ruby version and Ruby platform. This makes it easier for development (avoids "oops I forgot to rebuild when I switched my Ruby") and ensures that the wrong library is never loaded. When requiring, we need to use the exact same string, including the version and the platform.

"datadog_profiling_native_extension.#{RUBY_VERSION}_#{RUBY_PLATFORM}".freeze
SKIPPED_REASON_FILE =
"#{__dir__}/skipped_reason.txt".freeze

Instance Method Summary collapse

Instance Method Details

#skip_building_extension!(reason) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'ext/libdatadog_api/extconf.rb', line 7

def skip_building_extension!(reason)
  $stderr.puts(
    "WARN: Skipping build of libdatadog_api (#{reason}). Some functionality will not be available."
  )

  fail_install_if_missing_extension = ENV['DD_FAIL_INSTALL_IF_MISSING_EXTENSION'].to_s.strip.downcase == 'true'

  if fail_install_if_missing_extension
    require 'mkmf'
    Logging.message("[datadog] Failure cause: #{reason}")
  else
    File.write('Makefile', 'all install clean: # dummy makefile that does nothing')
  end

  exit
end