diff --git a/doc/Example-Ivy-Project/README.md b/doc/Example-Ivy-Project/README.md new file mode 100644 index 0000000000..6d94b06f17 --- /dev/null +++ b/doc/Example-Ivy-Project/README.md @@ -0,0 +1,23 @@ + + +This is an example application for using JavaSMT with Ant/Ivy. +The example application prints a table of the available SMT solvers, along with their version +number. + +The project supports the following build steps: + +- `resolve` retrieve dependencies with Ivy +- `compile` compile the project +- `package` build a .jar +- `run` run the program +- `clean` clean the project + +Calling `ant` with no target will build and then execute the project. \ No newline at end of file diff --git a/doc/Example-Ivy-Project/build.xml b/doc/Example-Ivy-Project/build.xml new file mode 100644 index 0000000000..b315efc27a --- /dev/null +++ b/doc/Example-Ivy-Project/build.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/Example-Ivy-Project/ivy.xml b/doc/Example-Ivy-Project/ivy.xml new file mode 100644 index 0000000000..bdbe362cef --- /dev/null +++ b/doc/Example-Ivy-Project/ivy.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/doc/Example-Ivy-Project/lib/ivy-settings.xml b/doc/Example-Ivy-Project/lib/ivy-settings.xml new file mode 100644 index 0000000000..1da8869609 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/ivy-settings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + diff --git a/doc/Example-Ivy-Project/lib/native/arm64-linux/libbitwuzlaj.so b/doc/Example-Ivy-Project/lib/native/arm64-linux/libbitwuzlaj.so new file mode 120000 index 0000000000..372f592128 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-linux/libbitwuzlaj.so @@ -0,0 +1 @@ +../../java/default/arm64/libbitwuzlaj.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-linux/libmathsat5j.so b/doc/Example-Ivy-Project/lib/native/arm64-linux/libmathsat5j.so new file mode 120000 index 0000000000..c7eaf57210 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-linux/libmathsat5j.so @@ -0,0 +1 @@ +../../java/default/arm64/libmathsat5j.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-linux/libopensmtj.so b/doc/Example-Ivy-Project/lib/native/arm64-linux/libopensmtj.so new file mode 120000 index 0000000000..8aadd048bf --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-linux/libopensmtj.so @@ -0,0 +1 @@ +../../java/default/arm64/libopensmtj.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3.so b/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3.so new file mode 120000 index 0000000000..7252d0c3c0 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3.so @@ -0,0 +1 @@ +../../java/default/arm64/libz3.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3java.so b/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3java.so new file mode 120000 index 0000000000..934e062ea2 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-linux/libz3java.so @@ -0,0 +1 @@ +../../java/default/arm64/libz3java.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3.dylib b/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3.dylib new file mode 120000 index 0000000000..590d25fa37 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3.dylib @@ -0,0 +1 @@ +../../java/default/arm64/libz3.dylib \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3java.dylib b/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3java.dylib new file mode 120000 index 0000000000..397941ff52 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/arm64-macosx/libz3java.dylib @@ -0,0 +1 @@ +../../java/default/arm64/libz3java.dylib \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-linux/libbitwuzlaj.so b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libbitwuzlaj.so new file mode 120000 index 0000000000..ef45bf4c23 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libbitwuzlaj.so @@ -0,0 +1 @@ +../../java/default/x64/libbitwuzlaj.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-linux/libmathsat5j.so b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libmathsat5j.so new file mode 120000 index 0000000000..c734ccd975 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libmathsat5j.so @@ -0,0 +1 @@ +../../java/default/x64/libmathsat5j.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-linux/libopensmtj.so b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libopensmtj.so new file mode 120000 index 0000000000..e613c908c0 --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libopensmtj.so @@ -0,0 +1 @@ +../../java/default/x64/libopensmtj.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3.so b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3.so new file mode 120000 index 0000000000..e2423e093d --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3.so @@ -0,0 +1 @@ +../../java/default/x64/libz3.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3java.so b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3java.so new file mode 120000 index 0000000000..392351c46a --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-linux/libz3java.so @@ -0,0 +1 @@ +../../java/default/x64/libz3java.so \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3.dylib b/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3.dylib new file mode 120000 index 0000000000..898516499b --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3.dylib @@ -0,0 +1 @@ +../../java/default/x64/libz3.dylib \ No newline at end of file diff --git a/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3java.dylib b/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3java.dylib new file mode 120000 index 0000000000..1c865209db --- /dev/null +++ b/doc/Example-Ivy-Project/lib/native/x86_64-macosx/libz3java.dylib @@ -0,0 +1 @@ +../../java/default/x64/libz3java.dylib \ No newline at end of file diff --git a/doc/Example-Ivy-Project/src/example/Main.java b/doc/Example-Ivy-Project/src/example/Main.java new file mode 100644 index 0000000000..4a6298c944 --- /dev/null +++ b/doc/Example-Ivy-Project/src/example/Main.java @@ -0,0 +1,34 @@ +// This file is part of JavaSMT, +// an API wrapper for a collection of SMT solvers: +// https://github.com/sosy-lab/java-smt +// +// SPDX-FileCopyrightText: 2025 Dirk Beyer +// +// SPDX-License-Identifier: Apache-2.0 + +package example; + +import org.sosy_lab.common.ShutdownNotifier; +import org.sosy_lab.common.configuration.Configuration; +import org.sosy_lab.common.configuration.InvalidConfigurationException; +import org.sosy_lab.common.log.LogManager; +import org.sosy_lab.java_smt.SolverContextFactory; +import org.sosy_lab.java_smt.SolverContextFactory.Solvers; +import org.sosy_lab.java_smt.api.SolverContext; + +public class Main { + public static void main(String[] args) { + Configuration config = Configuration.defaultConfiguration(); + LogManager logger = LogManager.createNullLogManager(); + ShutdownNotifier notifier = ShutdownNotifier.createDummy(); + + for (Solvers solver : Solvers.values()) { + try (SolverContext context = + SolverContextFactory.createSolverContext(config, logger, notifier, solver)) { + System.out.println(solver + ", " + context.getVersion()); + } catch (InvalidConfigurationException e) { + System.out.println(solver + " not available"); + } + } + } +}