forked from osrf/homebrew-simulation
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ignition-common4.rb
82 lines (78 loc) · 2.81 KB
/
ignition-common4.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class IgnitionCommon4 < Formula
desc "Common libraries for robotics applications"
homepage "https://github.com/ignitionrobotics/ign-common"
url "https://osrf-distributions.s3.amazonaws.com/ign-common/releases/ignition-common4-4.5.0.tar.bz2"
sha256 "d01471b1abdbf5617d1bc1c0842fa9323094170e500f409b435049ec13fb19a2"
license "Apache-2.0"
bottle do
root_url "https://osrf-distributions.s3.amazonaws.com/bottles-simulation"
sha256 cellar: :any, big_sur: "bf37ea7497b9809862ab771a6b18e19d9093080cccb5bc1035b0bd4550f4ad76"
sha256 cellar: :any, catalina: "468f02075b0dec46ca3b69ec82d5e1c2557ecdd861dccbd2814bdd8b69b5dfd4"
end
depends_on "cmake"
depends_on "ffmpeg"
depends_on "freeimage"
depends_on "gts"
depends_on "ignition-cmake2"
depends_on "ignition-math6"
depends_on "ignition-utils1"
depends_on macos: :high_sierra # c++17
depends_on "ossp-uuid"
depends_on "pkg-config"
depends_on "tinyxml2"
def install
cmake_args = std_cmake_args
cmake_args << "-DBUILD_TESTING=Off"
cmake_args << "-DCMAKE_INSTALL_RPATH=#{rpath}"
system "cmake", ".", *cmake_args
system "make", "install"
end
test do
(testpath/"test.cpp").write <<-EOS
#include <iostream>
#include <ignition/common.hh>
int main() {
igndbg << "debug" << std::endl;
ignwarn << "warn" << std::endl;
ignerr << "error" << std::endl;
// // this example code doesn't compile
// try {
// ignthrow("An example exception that is caught.");
// }
// catch(const ignition::common::exception &_e) {
// std::cerr << "Caught a runtime error " << _e.what() << std::endl;
// }
// ignassert(0 == 0);
return 0;
}
EOS
(testpath/"CMakeLists.txt").write <<-EOS
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
find_package(ignition-common4 QUIET REQUIRED)
add_executable(test_cmake test.cpp)
target_link_libraries(test_cmake ${IGNITION-COMMON_LIBRARIES})
EOS
system "pkg-config", "ignition-common4"
cflags = `pkg-config --cflags ignition-common4`.split
system ENV.cc, "test.cpp",
*cflags,
"-L#{lib}",
"-lignition-common4",
"-lc++",
"-o", "test"
system "./test"
# test building with cmake
mkdir "build" do
ENV.append "LIBRARY_PATH", Formula["gettext"].opt_lib
system "cmake", ".."
system "make"
system "./test_cmake"
end
# check for Xcode frameworks in bottle
# ! requires system with single argument, which uses standard shell
# put in variable to avoid audit complaint
# enclose / in [] so the following line won't match itself
cmd_not_grep_xcode = "! grep -rnI 'Applications[/]Xcode' #{prefix}"
system cmd_not_grep_xcode
end
end