annotate doc/README.CMake @ 357:d982a00c2177

- PPC64 asm syntax fix, specifying explicitly comparison mode for cmpi (newer toolchains complain, older ones took optional field of instruction which happened to be same value)
author Tassilo Philipp
date Tue, 25 Feb 2020 18:16:13 +0100
parents 3e629dc19168
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 Notes on building DynCall with CMake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 ====================================
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 Build with CMake (in-source)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 ----------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 cd <dyncall-source-dir>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 On Unix:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 cmake .
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 make
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 On Windows:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 cmake . -G "NMake Makefiles"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 nmake /f Makefile
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 NOTE: Assembly Support is broken for Visual Studio Generators in CMake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 So we support NMake for now only.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 Install in a specific location
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 ------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 cmake -DCMAKE_INSTALL_PREFIX=<absolute-path>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 Tested settings
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 ---------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 - CMake Unix Makefile generators on Mac OS X and Linux.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 Using from other CMake-based projects
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 -------------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 Under buildsys/cmake/Modules you find some Find*() scripts
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 which you might find useful.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 Make Universal Binary
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 ---------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 cmake -DCMAKE_OSX_ARCHITECTURES="i386;x86_64;ppc"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 CMake Framework
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 ---------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 The project name is "DynCall".
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 Each library in the source tree represents a target (not a sub-project!).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 Support scripts for 'find_package' are at buildsys/cmake/Modules.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 find_package( [DynLoad | DynCall | DynCallback] )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 will set the variables:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 Dyn*_INCLUDE_DIRS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 Dyn*_LIBRARIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 Using dyncall libraries in other CMake projects
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 -----------------------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 find_package(DynLoad REQUIRED)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 add_includes(${DynLoad_INCLUDE_DIRS})
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 target_link_libraries( ... ${DynLoad_LIBRARIES})
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 Use as sub-project within CMake top-level project
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 -------------------------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 add_subdirectory(path/to/dyncall/project/tree)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 set(DynLoad_DIR ${DynCall_SOURCE_DIR}/dynload)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 set(DynCall_DIR ${DynCall_SOURCE_DIR}/dyncall)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 set(DynCallback_DIR ${DynCall_SOURCE_DIR}/dyncallback)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 has the effect, that the 'find_package' works from within the project source
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 tree.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 Building for SPARC64 Architectures
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 ----------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 Supported Compilers: GCC, SunPro
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 Add -m64 to C, C++ and ASM flags, e.g.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 $ cmake -DCMAKE_C_FLAGS=-m64 -DCMAKE_ASM_FLAGS=-m64 -DCMAKE_ASM_CXX_FLAGS=-m64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82