Skip to content

Commit

Permalink
Local project setup (#1)
Browse files Browse the repository at this point in the history
* init makefile

* eigen fetch

* eigen builds

* flann builds

* boost builds no python

* vtk build

* pcl builds

* pcl builds

* run target works

* local project settings
  • Loading branch information
vicrion authored Dec 5, 2024
1 parent 2289c50 commit 03e8bea
Show file tree
Hide file tree
Showing 5 changed files with 136 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build*
16 changes: 16 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/../installed.host/**",
"${workspaceFolder}/src/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c23",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"cmake.sourceDirectory": "${workspaceFolder}",
"cmake.buildDirectory": "${workspaceFolder}/build_vscode",
"cmake.installPrefix": "${workspaceFolder}/../installed.host",
"cmake.configureArgs": [
"-DCMAKE_BUILD_TYPE=Debug",
"-DCMAKE_PREFIX_PATH=${workspaceFolder}/../installed.host"
],
"cmake.debugConfig": {
"args": [
]
},
"C_Cpp.default.compilerPath": "/usr/bin/g++-12",
}
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

add_definitions(-std=c++11)
add_definitions(-std=c++17)

set(CXX_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS, "${CXX_FLAGS}")
Expand Down
104 changes: 104 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
SHELL := /bin/bash

BASE.DIR=$(PWD)
COMMON.DIR=$(realpath $(BASE.DIR)/..)
DOWNLOADS.DIR=$(COMMON.DIR)/downloads
INSTALLED.HOST.DIR=$(COMMON.DIR)/installed.host

deps: eigen flann boost vtk pcl

BUILD.DIR=$(BASE.DIR)/build_mk
build: .FORCE
rm -rf $(BUILD.DIR) && mkdir -p $(BUILD.DIR)
cd $(BUILD.DIR) && cmake $(BASE.DIR) -DCMAKE_PREFIX_PATH=$(INSTALLED.HOST.DIR) -DCMAKE_BUILD_TYPE=Debug && make

BIN.TEST=$(BUILD.DIR)/ukf_highway
run: .FORCE
export LD_LIBRARY_PATH=$(INSTALLED.HOST.DIR)/lib && $(BIN.TEST)

EIGEN.VERSION=3.4.0
EIGEN.ARCHIVE=eigen-$(EIGEN.VERSION).tar.gz
EIGEN.URL=https://gitlab.com/libeigen/eigen/-/archive/$(EIGEN.VERSION)/$(EIGEN.ARCHIVE)
EIGEN.DIR=$(DOWNLOADS.DIR)/eigen-$(EIGEN.VERSION)
EIGEN.BUILD=$(DOWNLOADS.DIR)/build.eigen-$(EIGEN.VERSION)
eigen: eigen.fetch eigen.build
eigen.fetch: .FORCE
rm -rf $(DOWNLOADS.DIR)/$(EIGEN.ARCHIVE) && mkdir -p $(DOWNLOADS.DIR)
cd $(DOWNLOADS.DIR) && wget $(EIGEN.URL) && tar xf $(EIGEN.ARCHIVE)

eigen.build: .FORCE
rm -rf $(EIGEN.BUILD) && mkdir -p $(EIGEN.BUILD) && mkdir -p $(INSTALLED.HOST.DIR)
cd $(EIGEN.BUILD) && cmake -DCMAKE_INSTALL_PREFIX=$(INSTALLED.HOST.DIR) $(EIGEN.DIR) && make -j$(J) && make install

FLANN.VERSION=1.9.2
FLANN.ARCHIVE=flann-$(FLANN.VERSION).tar.gz
FLANN.URL=https://github.com/mariusmuja/flann/archive/$(FLANN.VERSION).tar.gz
FLANN.DIR=$(DOWNLOADS.DIR)/flann-$(FLANN.VERSION)
FLANN.BUILD=$(DOWNLOADS.DIR)/build.flann
flann: flann.fetch flann.build
flann.fetch: .FORCE
rm -rf $(FLANN.DIR) && rm -rf $(DOWNLOADS.DIR)/$(FLANN.ARCHIVE) && mkdir -p $(DOWNLOADS.DIR)
cd $(DOWNLOADS.DIR) && wget $(FLANN.URL) -O $(FLANN.ARCHIVE) && tar xf $(FLANN.ARCHIVE)

flann.build: .FORCE
rm -rf $(FLANN.BUILD) && mkdir -p $(FLANN.BUILD)
cd $(FLANN.BUILD) && cmake -DCMAKE_INSTALL_PREFIX=$(INSTALLED.HOST.DIR) -DCMAKE_INCLUDE_PATH=$(INSTALLED.HOST.DIR)/include -DCMAKE_LIBRARY_PATH=$(INSTALLED.HOST.DIR)/lib -DBUILD_PYTHON_BINDINGS=OFF -DBUILD_MATLAB_BINDINGS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_DOC=OFF $(FLANN.DIR) && make -j$(J) install

# https://github.com/boostorg/boost/releases/download/boost-1.86.0/boost-1.86.0-b2-nodocs.tar.gz
BOOST.VERSION=1.85.0
BOOST.ARCHIVE=boost-$(BOOST.VERSION)-b2-nodocs.tar.gz
BOOST.URL=https://github.com/boostorg/boost/releases/download/boost-$(BOOST.VERSION)/$(BOOST.ARCHIVE)
BOOST.DIR=$(DOWNLOADS.DIR)/boost-$(BOOST.VERSION)
BOOST.BUILD=$(DOWNLOADS.DIR)/build.boost-$(BOOST.VERSION)
boost: boost.fetch boost.build
boost.fetch: .FORCE
rm -rf $(BOOST.DIR) && rm -f $(BOOST.ARCHIVE)
cd $(DOWNLOADS.DIR) && wget $(BOOST.URL) -O $(BOOST.ARCHIVE) && tar xvf $(BOOST.ARCHIVE)

boost.build: .FORCE
cd $(BOOST.DIR) && ./bootstrap.sh --prefix=$(INSTALLED.HOST.DIR) && ./b2 stage threading=multi link=shared --without-python && ./b2 install threading=multi link=shared --without-python

VTK.VERSION=9.4.0
VTK.DIR=$(DOWNLOADS.DIR)/VTK-$(VTK.VERSION)
VTK.BUILD=$(DOWNLOADS.DIR)/build.vtk
VTK.ARCHIVE=VTK-$(VTK.VERSION).tar.gz
VTK.URL=https://www.vtk.org/files/release/9.4/$(VTK.ARCHIVE)
vtk: vtk.fetch vtk.build
vtk.fetch:. .FORCE
rm -rf $(DOWNLOADS.DIR)/$(VTK.ARCHIVE) && rm -rf $(VTK.DIR) && mkdir -p $(DOWNLOADS.DIR)
cd $(DOWNLOADS.DIR) && wget $(VTK.URL) && tar xf $(VTK.ARCHIVE)

vtk.build: .FORCE
mkdir -p $(VTK.BUILD)
cd $(VTK.BUILD) && cmake -DCMAKE_INSTALL_PREFIX=$(INSTALLED.HOST.DIR) -DCMAKE_PREFIX_PATH=$(INSTALLED.HOST.DIR) -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVTK_LEGACY_SILENT=ON -DBOOST_ROOT=$(INSTALLED.HOST.DIR) -DBOOST_LIBRARY_DIR=$(INSTALLED.HOST.DIR)/lib $(VTK.DIR) && make -j8 install

# https://github.com/PointCloudLibrary/pcl/releases/download/pcl-1.14.1/source.tar.gz
PCL.VERSION=1.14.1
PCL.DIR=$(DOWNLOADS.DIR)/pcl-$(PCL.VERSION)
PCL.BUILD=$(DOWNLOADS.DIR)/build.pcl-$(PCL.VERSION)
PCL.ARCHIVE=pcl-$(PCL.VERSION).tar.gz
PCL.URL=https://github.com/PointCloudLibrary/pcl/releases/download/pcl-$(PCL.VERSION)/source.tar.gz
pcl: pcl.fetch pcl.build
pcl.fetch: .FORCE
mkdir -p $(DOWNLOADS.DIR) && mkdir -p $(PCL.DIR)
cd $(DOWNLOADS.DIR) && wget $(PCL.URL) -O $(PCL.ARCHIVE) && tar xf $(PCL.ARCHIVE) -C $(PCL.DIR)

pcl.build: .FORCE
rm -rf $(PCL.BUILD) && mkdir -p $(PCL.BUILD)
cd $(PCL.BUILD) && \
cmake $(PCL.DIR)/pcl \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 \
-DCMAKE_PREFIX_PATH="$(INSTALLED.HOST.DIR);/usr;/usr/local" \
-DCMAKE_INSTALL_PREFIX=$(INSTALLED.HOST.DIR) \
-DVTK_DIR=$(INSTALLED.HOST.DIR) \
-DGLUT_INCLUDE_DIR=/usr/include \
-DGLUT_glut_LIBRARY=/usr/lib/x86_64-linux-gnu/libglut.so \
-DOPENGL_INCLUDE_DIR=/usr/include \
-DOPENGL_gl_LIBRARY=/usr/lib/x86_64-linux-gnu/libGL.so \
-DOPENGL_glu_LIBRARY=/usr/lib/x86_64-linux-gnu/libGLU.so \
-DBUILD_visualization=ON \
-DBUILD_io=ON \
&& make -j8 install

.FORCE:

0 comments on commit 03e8bea

Please sign in to comment.