Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Dockerfile for AI-Toolbox with required dependencies #69

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

omniscientoctopus
Copy link

@omniscientoctopus omniscientoctopus commented Dec 27, 2023

I was unable to install it on my Mac due to the dependencies and complier conflicts, so I created a simple Docker image to install this toolbox. I hope this helps others save time :)

output of cmake

-- The CXX compiler identification is GNU 10.5.0
-- Check for working CXX compiler: /usr/bin/g++-10
-- Check for working CXX compiler: /usr/bin/g++-10 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/lib/aarch64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.67")
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "3.2.92")
-- Performing Test LPSOLVE_LINKS_ALONE
-- Performing Test LPSOLVE_LINKS_ALONE - Success
-- Found LpSolve: /usr/lib/lp_solve/liblpsolve55.so
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter Development
-- Found Boost: /usr/lib/aarch64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.67") found components: python38

AI_TOOLBOX SETTINGS

-- CMAKE_BUILD_TYPE: Release
-- IPO / LTO enabled
✗ NOT Building everything (-DMAKE_ALL=0)
✗ NOT Building entire library (-DMAKE_LIB=0)
✓ Building MDP (-DMAKE_MDP=1)
✗ NOT Building Factored MDP (-DMAKE_FMDP=0)
✓ Building POMDP (-DMAKE_POMDP=1)
✗ NOT Building Tests (-DMAKE_TESTS=0)
✓ Building Examples (-DMAKE_EXAMPLES=1)
✓ Building Python bindings (-DMAKE_PYTHON=1)
- Selected Python 3.8 (-DAI_PYTHON_VERSION=3)
✗ NOT Enabled runtime logging (-DAI_LOGGING_ENABLED=0)

-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/AI-Toolbox/build

@Svalorzen
Copy link
Owner

Svalorzen commented Jan 5, 2024

Cool, thanks! Could the file be modified as to actually compile the entire project (seems this actually skips a couple of things)?

Do you know also if it might be possible to test the file using GitHub Actions? If so, it'd be cool to add an additional test to the actions file together with this.

@omniscientoctopus
Copy link
Author

Thanks again @Svalorzen for building this toolbox.

With the lastest commit, the docker image builds the full package and I have also added a test in the GitHub workflows to test the docker-image build.

When I was using the package, I noticed that Python modules for some POMDP solvers, such as SARSOP, Fast Informed Bound, are missing (see line 7239-7265 in docker/build_log.txt). Are they currently only available in C++?

@Svalorzen
Copy link
Owner

Ah, it's possible some things are missing in the Python bindings. I may have forgot to add them; the bindings are fairly simple to add at least. At the moment I'm fairly busy but I'll make a note to add them ASAP, as well as reviewing and merging your PR. Hopefully next week I'll have a bit of time for this :)

Thanks a lot for the effort!

CMakeLists.txt Outdated
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++2a")
set(CMAKE_CXX_COMPILER g++-10)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this line absolutely required?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, it can be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants