Compiling CoppeliaSim and related items
The full source code of CoppeliaSim (including most plugin source codes and others) can be found here. While the CoppeliaSim library (coppeliaSimLib) is GNU GPL licensed, the geometric and kinematics plugins (simGeom and simIK) have a specific license attached. In short, only educational entities (students, teachers, professors, schools or Universities) may download and use that plugin without explicit permission.
CoppeliaSimLib and the geometric plugin are Qt projects, and will require you to have Qt installed on your computer. Try to comply with following list of requirements in order to encounter least problems during compilation:
Download and install CoppeliaSim Edu. Then download the CoppeliaSimLib library source code (and optionally the plugin source codes) into the CoppeliaSim Edu installation folder. You should have following folder structure:
When using CoppeliaSim in conjunction with a plugin, make sure to use the source code / binaries that come from the same release (check the release tags), in order to avoid incompatibilities. Finally, before being able to compile the CoppeliaSim project, you will have to adjust various paths in the config.pri file.
CoppeliaSimLib compiles to a shared library. The default client application that loads and runs the library is coppeliaSim or coppeliaSim.exe. You can use the precompiled one, or recompile it yourself (refer to following repositories: coppeliaSimClient and coppeliaSimClientPython). The load operation of the library is successfull only if:
The easiest for you is to copy the compiled libraries into the CoppeliaSim folder, then you will be sure that CoppeliaSim should start and won't complain about missing dependencies.
It is very important that you do not mix various Qt versions, or binaries from various compilers. If your main CoppeliaSimLib library was compiled with Qt X and compiler Y, then all plugins related to CoppeliaSim should also have been compiled with Qt X and compiler Y, otherwise, you can experience strange behaviours (library that cannot load, sudden crashes, etc.). This requirement can be relaxed if your plugin is not making use of any Qt function.