annotate doc/README.CMake @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
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