mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-01-22 12:28:04 -05:00
125 lines
4.0 KiB
ReStructuredText
125 lines
4.0 KiB
ReStructuredText
|
|
.. _shared_library:
|
|
|
|
********************
|
|
Shared Library (DLL)
|
|
********************
|
|
|
|
General Information
|
|
===================
|
|
|
|
Shared libraries are compiled code that can be accessed by other programs. On windows, they are DLL files, on other platforms .os (linux) or .dylib (OSX)
|
|
|
|
There are a few things that need to be considered when determining what shared library you should build/use:
|
|
|
|
* Calling convention (`http://en.wikipedia.org/wiki/Calling_convention <wikipedia>`_: ``__stdcall`` or ``__cdecl`` - only a consideration on 32-bit windows
|
|
* Architecture: 32-bit or 64-bit
|
|
* Compiler: Visual Studio, Mingw, GCC, clang
|
|
|
|
Pre-Compiled Binaries
|
|
======================
|
|
|
|
Download the appropriate shared library for your architecture from from :sfdownloads:`shared_library`, or the development versions from the buildbot server at :sfnightly:`shared_library`.
|
|
|
|
User-Compiled Binaries
|
|
======================
|
|
|
|
Common Requirements
|
|
-------------------
|
|
Compilation of a shared library requires a few :ref:`common wrapper pre-requisites <wrapper_common_prereqs>`
|
|
|
|
Windows
|
|
-------
|
|
On windows, the greatest amount of complexity is experienced.
|
|
|
|
Your compiler options are:
|
|
|
|
* MinGW (a windows port of GCC)
|
|
* Visual Studio, multiple versions can be installed in parallel
|
|
|
|
By default, cmake will use your most up to date version of visual studio it finds.
|
|
|
|
Your calling convention options are:
|
|
|
|
* 32-bit __stdcall (``-DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON``)
|
|
* 32-bit __cdecl (``-DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON``)
|
|
* 64-bit (``-DCOOLPROP_64BIT_SHARED_LIBRARY=ON``)
|
|
|
|
You can select the compiler in the call to cmake below.
|
|
|
|
1. Check out sources and go into the build directory::
|
|
|
|
# Check out the sources for CoolProp
|
|
git clone https://github.com/CoolProp/CoolProp --recursive
|
|
# Move into the folder you just created
|
|
cd CoolProp
|
|
# Make a build folder
|
|
mkdir build && cd build
|
|
|
|
2. Generate the build file. Here is where it gets complicated.
|
|
|
|
A. If you use MinGW, these are your options:
|
|
|
|
For 64-bit DLL::
|
|
|
|
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
|
|
|
For 32-bit __stdcall DLL::
|
|
|
|
cmake .. -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
|
|
|
For 32-bit __cdecl DLL::
|
|
|
|
cmake .. -DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
|
|
|
B. If you use Visual Studio, you will need to replace the visual studio version with the version that you are using. Running the command ``cmake`` at the command prompt will tell you what generators are supported
|
|
|
|
For 64-bit DLL (Watch out for the 64-bit flag with Win64)::
|
|
|
|
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON -G "Visual Studio 10 2010 Win64"
|
|
|
|
For 32-bit __stdcall DLL::
|
|
|
|
cmake .. -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON -G "Visual Studio 10 2010"
|
|
|
|
For 32-bit __cdecl DLL::
|
|
|
|
cmake .. -DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON -G "Visual Studio 10 2010"
|
|
|
|
3. Do the build::
|
|
|
|
cmake --build . --config Release
|
|
|
|
If you are using MinGW, you can leave off the ``--config Release``, the default build configuration is release
|
|
|
|
Linux & OSX
|
|
-----------
|
|
|
|
On linux and OSX there is no calling convention to worry about, only options are 32-bit and 64-bit compilation. If you give one of the 32-bit flags, the calling convention will be ignored, so just do that.
|
|
|
|
For 32-bit compilation::
|
|
|
|
# Check out the sources for CoolProp
|
|
git clone https://github.com/CoolProp/CoolProp --recursive
|
|
# Move into the folder you just created
|
|
cd CoolProp
|
|
# Make a build folder
|
|
mkdir build && cd build
|
|
# Generate builder
|
|
cmake .. -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON
|
|
# Build
|
|
cmake --build .
|
|
|
|
For 64-bit compilation::
|
|
|
|
# Check out the sources for CoolProp
|
|
git clone https://github.com/CoolProp/CoolProp --recursive
|
|
# Move into the folder you just created
|
|
cd CoolProp
|
|
# Make a build folder
|
|
mkdir build && cd build
|
|
# Generate builder
|
|
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON
|
|
# Build
|
|
cmake --build .
|