annotate CMakeLists.txt @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children af6c88d34af0
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 # Package: dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 # File: CMakeLists.txt
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 # Description: DynCall Project cmake files
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 # License:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 # Copyright (c) 2010 Daniel Adler <dadler@uni-goettingen.de>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 # Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 # purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 # copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 cmake_minimum_required (VERSION 2.6)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 project(DynCall)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dyncall enables dynamic invocation of machine-level function calls")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 set(CPACK_PACKAGE_VENDOR "dyncall project")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/doc/Description.txt")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/License.txt")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 if(APPLE)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/doc/Description.txt")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 endif(APPLE)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 set(CPACK_PACKAGE_NAME "dyncall")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 include(CPack)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 # add cmake modules shipped with the package to cmake's module path.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 # currently we have no use for this, but maybe later..
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 #set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/buildsys/cmake/Modules" "${CMAKE_MODULE_PATH}")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 if(MSVC)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 enable_language(ASM_MASM)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 #if(CMAKE_SIZEOF_VOID_P MATCHES 8)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 # set(CMAKE_ASM_COMPILER "ml64")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 #else()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 # set(CMAKE_ASM_COMPILER "ml")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 #endif()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 #set(CMAKE_ASM_COMPILER_ARG1 "/c")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 #set(CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS asm)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 #set(CMAKE_ASM_MASM_COMPILE_OBJECT "<CMAKE_ASM_MASM_COMPILER> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 elseif(CMAKE_COMPILER_IS_GNUCC)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 # when used in shared libraries, -fPIC is required by several architectures
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 # and platforms (observed on AMD64, Solaris/Sparc).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 # we enable it per default here.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 add_definitions("-fPIC")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 # enable gcc as front-end to assembler for .S files
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 enable_language(ASM)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "SunPro")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 enable_language(ASM)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 endif()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 add_subdirectory(dynload)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 add_subdirectory(dyncall)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 add_subdirectory(dyncallback)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 add_subdirectory(doc/manual EXCLUDE_FROM_ALL)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 add_subdirectory(test EXCLUDE_FROM_ALL)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 # install cmake Find scripts (disabled per default)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 option(INSTALL_CMAKE_MODULES "install cmake modules to locate dyncall" "NO")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 if(INSTALL_CMAKE_MODULES)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 file(GLOB INSTALL_CMAKE_MODULES_FILES buildsys/cmake/Modules/Find*.cmake)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 install(FILES ${INSTALL_CMAKE_MODULES_FILES} DESTINATION ${CMAKE_ROOT}/Modules)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 endif(INSTALL_CMAKE_MODULES)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79