Module: MilkTea::VendoredGLFW
- Defined in:
- lib/milk_tea/bindings/vendored_glfw.rb
Constant Summary collapse
- Error =
VendoredCLibrary::Error
- SOURCE_NAME =
"glfw"- CONFIGURE_ARGS =
%w[ -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF ].freeze
Class Method Summary collapse
- .archive_path(root: MilkTea.root) ⇒ Object
- .build_root(root: MilkTea.root) ⇒ Object
- .header_root(root: MilkTea.root) ⇒ Object
- .include_flags(root: MilkTea.root) ⇒ Object
- .include_root(root: MilkTea.root) ⇒ Object
- .install_root(root: MilkTea.root) ⇒ Object
- .library(root: MilkTea.root) ⇒ Object
- .link_flags(root: MilkTea.root) ⇒ Object
- .prepare!(root: MilkTea.root, **kwargs) ⇒ Object
- .source(root: MilkTea.root) ⇒ Object
- .source_root(root: MilkTea.root) ⇒ Object
Class Method Details
.archive_path(root: MilkTea.root) ⇒ Object
58 59 60 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 58 def self.archive_path(root: MilkTea.root) install_root(root:).join("lib/libglfw3.a") end |
.build_root(root: MilkTea.root) ⇒ Object
50 51 52 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 50 def self.build_root(root: MilkTea.root) MilkTea.writable_root_for(root).join("tmp/vendored-glfw") end |
.header_root(root: MilkTea.root) ⇒ Object
46 47 48 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 46 def self.header_root(root: MilkTea.root) include_root(root:).join("GLFW") end |
.include_flags(root: MilkTea.root) ⇒ Object
62 63 64 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 62 def self.include_flags(root: MilkTea.root) library(root:).include_flags end |
.include_root(root: MilkTea.root) ⇒ Object
42 43 44 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 42 def self.include_root(root: MilkTea.root) source_root(root:).join("include") end |
.install_root(root: MilkTea.root) ⇒ Object
54 55 56 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 54 def self.install_root(root: MilkTea.root) MilkTea.writable_root_for(root).join("tmp/vendored-glfw-prefix") end |
.library(root: MilkTea.root) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 22 def self.library(root: MilkTea.root) resolved_root = Pathname.new(File.(root.to_s)) @libraries ||= {} @libraries[resolved_root.to_s] ||= VendoredCLibrary::CMake.new( name: "glfw", source_root: source_root(root: resolved_root), build_root: build_root(root: resolved_root), install_root: install_root(root: resolved_root), archive_path: archive_path(root: resolved_root), include_roots: [include_root(root: resolved_root)], configure_args: CONFIGURE_ARGS, pkg_config_name: "glfw3", cc_env_var: "GLFW_CC", ) end |
.link_flags(root: MilkTea.root) ⇒ Object
66 67 68 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 66 def self.link_flags(root: MilkTea.root) library(root:).link_flags end |
.prepare!(root: MilkTea.root, **kwargs) ⇒ Object
70 71 72 73 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 70 def self.prepare!(root: MilkTea.root, **kwargs) source(root:).bootstrap! library(root:).prepare!(**kwargs) end |
.source(root: MilkTea.root) ⇒ Object
17 18 19 20 |
# File 'lib/milk_tea/bindings/vendored_glfw.rb', line 17 def self.source(root: MilkTea.root) UpstreamSources.default_sources(root:).find { |entry| entry.name == SOURCE_NAME } || raise(Error, "missing upstream source definition for #{SOURCE_NAME}") end |