comparison CMakeLists.txt @ 0:3e629dc19168

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