Installation

The ObjectTalk package is written in C++ and can be compiled on MacOS, Linux and Windows. To simplify the build process, CMake is used to deal with cross-platform challenges. Right now, all platforms support the build process from the command line using very simple instructions. MacOS and Windows also support using visual development environments like Xcode and Visual Studio (Code).

ObjectTalk uses a large number of 3rd party Open Source packages. The CMake process automatically loads the correct versions, compiles them and links them into the ObjectTalk executable (simply named ot). No endless downloads, frustrations over each package's peculiarities or countless Google searches. The plan is to just support it out of the box.

Below are simple instructions for each of the supported platforms followed by some hints that apply to all platforms.

Build and Install on MacOS

ObjectTalk is supported on Sequoia (MacOS 15), Sonoma (MacOS 14)and Ventura (MacOS 13). There are 4 simple requirements to get your machine ready for ObjectTalk development:

  • Install Xcode from the App Store
  • Install homebrew using the instructions at https://brew.sh
  • Install git using brew install git from the command line
  • Install CMake using brew install cmake from the command line
  • Install Ninja using brew install ninja from the command line

To build ObjectTalk, do the following from the command line:

  • cd [to your favorite build directory]
  • git clone https://github.com/goossens/ObjectTalk.git
  • cd ObjectTalk
  • Create a debug version with make debug or create a release version with make release
  • You can run the test suite for the language with make test
  • The created binary will be ./debug/bin/ot or ./release/bin/ot depending on the build type
  • You can also build an Xcode project with make xcode: the project will be in the build/xcode directory

Build and Install on Linux

ObjectTalk is supported on Linux. Given the large number of flavors, the core team only tests the build process on Ubuntu 22.04 Desktop. In practice, any distribution should work as it just depends on the availability of X-Windows, Wayland and Vulkan. Other flavors of Linux will likely work as well but we'll let the community provide the instructions.

To build the full version of ObjectTalk on Ubuntu 22.04 Desktop with GUI and IDE, run the following commands:

  • Install additional software using sudo apt-get install build-essential cmake ninja-build git xorg-dev libgl1-mesa-dev x11proto-core-dev libx11-dev libwayland-dev libxkbcommon-x11-dev
  • cd [to your favorite build directory]
  • If your favorite directory is on a mounted drive, you might have to do a git config --global --replace-all safe.directory '*'
  • git clone https://github.com/goossens/ObjectTalk.git
  • cd ObjectTalk
  • Create a debug version with make debug or create a release version with make release
  • You can run the test suite for the language with make test or make rtest depending on the build type
  • The created binary will be ./build/Linux/Debug/ot or ./Linux/Release/ot depending on the build type

Build and Install on Windows

ObjectTalk is supported on Windows 10, 11, Server 2019 and Server 2022. There are 3 simple requirements to get your machine ready for ObjectTalk development:

To build ObjectTalk, do the following from the command line:

  • cd [to your favorite build directory]
  • git clone https://github.com/goossens/ObjectTalk.git
  • If your favorite directory is on a mounted drive, you might have to do a git config --global --replace-all safe.directory "*"
  • cd ObjectTalk
  • cmake -B build/vs -G "Visual Studio 17 2022" -A x64
  • Build ObjectTalk by Hand:
    • cmake --build build/vs
    • Run the tests: ctest --test-dir build/vs --build-config Debug --output-on-failure
    • Run the executable at build/vs/Debug/ot.exe
  • Build ObjectTalk in Visual Studio:
    • Open the ObjectTalk.sln solution in the build/vs folder and go crazy.

Running ObjectTalk

Once you have compiled ObjectTalk, you end up with a single executable in one of the build directories depending on the platform or the method used. This executable can be moved anywhere.

  • Executable locations:
    • Command line (MacOS Debug): ./build/Darwin/Debug/ot
    • Command line (MacOS Release): ./build/Darwin/Release/ot
    • Xcode: ./build/xcode/Release/ot
    • Command line (Linux Debug): ./build/Linux/Debug/ot
    • Command line (Linux Release): ./build/Linux/Release/ot
    • Windows (Debug): ./build/vs/Debug/ot.exe
    • Windows (Release): ./build/vs/Release/ot.exe

In principle, the ObjectTalk executable (ot) is a command line tool that takes parameters. Here is the help you get when you run ot -h:

Usage: ot [--help] [--version] [--child] [--log filename] [files]...

Positional arguments:
files               files to process [nargs: 0 or more]

Optional arguments:
-h --help			shows help message and exits
-v --version		prints version information and exits
-c, --child         run as an IDE child process (internal use only)
-l, --log filename  specify a file to send log to

Startup logic:

If compiled with UI
	If one file is specified on the command line
		do the following based on file extension
			.ot  - compile and run script
			.ots - run scene file
			.otn - open nodes in IDE
			.* - open file in IDE

	Elseif more than one files is specified on the command line
		Open all files in the IDE

	Elseif no files are specified on the command line
		Start IDE

	Else
	If one file is specified on the command line
		If file is .ot
			compile and run script

		Else
			Exit with error

	Else
		Exit with error