0
|
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
|