Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,16 @@ endif()

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")

option(BUILD_SHARED_LIBS "Build shared libraries" ON)

# MOOS-IvP's helm libraries (IVP_BUILD_HELM_LIBS_ONLY)
find_package(IVP CONFIG REQUIRED)

find_package(GOBY 3.0 COMPONENTS zeromq)
if(NOT GOBY_FOUND)
message(STATUS "Goby3 not found: not building the Goby app")
endif()

include(CTest)

add_subdirectory(src)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ One way to think of this project is as a generator for the equivalent of the MOO

*This section was written by Claude.*

`init.sh` checks out the submodules and installs the Ubuntu packages needed to build them and IvPico. `build.sh` then builds, all in `build/`:
`init.sh` checks out the submodules and installs the Ubuntu packages needed to build them and IvPico. These include Goby3 from [packages.gobysoft.org](http://packages.gobysoft.org), for the Goby app; without Goby3, `build.sh` skips the Goby app. `build.sh` then builds, all in `build/`:

- openocean-messages, into `build/external/openocean-messages`;
- MOOS-IvP's helm libraries (`IVP_BUILD_HELM_LIBS_ONLY`, as shared libraries, without MOOS or its apps), into `build/external/moos-ivp`, installed into `build/external/install` for `find_package(IVP)`;
Expand Down
20 changes: 18 additions & 2 deletions init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,25 @@ if [ "$(id -u)" -ne 0 ]; then
SUDO=sudo
fi

apt_install() {
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "$@"
}

# moos-ivp's helm libraries (IVP_BUILD_HELM_LIBS_ONLY) need only CMake and a compiler
packages=(cmake ninja-build g++ git ca-certificates protobuf-compiler libprotobuf-dev)
packages=(cmake ninja-build g++ git ca-certificates protobuf-compiler libprotobuf-dev curl gpg)
$SUDO apt-get update
apt_install "${packages[@]}"

# Goby3, for src/bin/goby, from packages.gobysoft.org
keyring=/usr/share/keyrings/gobysoft-archive-keyring.gpg
if [ ! -f "${keyring}" ]; then
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x19478082E2F8D3FE" |
gpg --dearmor | $SUDO tee "${keyring}" > /dev/null
fi
. /etc/os-release
echo "deb [signed-by=${keyring}] http://packages.gobysoft.org/${ID}/release/ ${VERSION_CODENAME}/" |
$SUDO tee /etc/apt/sources.list.d/gobysoft_release.list > /dev/null
$SUDO apt-get update
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "${packages[@]}"
apt_install libgoby3-dev goby3-apps

external/openocean-messages/init.sh --cxx
4 changes: 3 additions & 1 deletion src/bin/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
add_subdirectory(goby)
if(GOBY_FOUND)
add_subdirectory(goby)
endif()

add_subdirectory(ros)

Expand Down