Mercurial > pub > dyncall > dyncall
annotate CMakeLists.txt @ 417:237023a0b6f8 r1.3-RC2
- version bump in manual
author | Tassilo Philipp |
---|---|
date | Thu, 16 Dec 2021 16:13:03 +0100 |
parents | 451299d50c1a |
children | 3c3e321875f7 |
rev | line source |
---|---|
0 | 1 # Package: dyncall |
2 # File: CMakeLists.txt | |
3 # Description: DynCall Project cmake files | |
4 # License: | |
5 # | |
371
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
6 # Copyright (c) 2010-2020 Daniel Adler <dadler@uni-goettingen.de> |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
7 # 2020 armasm64 support: Bernhard Urban-Forster <beurba@microsoft.com> |
0 | 8 # |
9 # Permission to use, copy, modify, and distribute this software for any | |
10 # purpose with or without fee is hereby granted, provided that the above | |
11 # copyright notice and this permission notice appear in all copies. | |
12 # | |
13 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
14 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
15 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
16 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
17 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
18 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
19 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
20 # | |
21 | |
22 cmake_minimum_required (VERSION 2.6) | |
149
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
23 project(DynCall C) |
0 | 24 |
25 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dyncall enables dynamic invocation of machine-level function calls") | |
26 set(CPACK_PACKAGE_VENDOR "dyncall project") | |
316
dc8bbffc39e6
- fix for some cmake/cpack doc paths (fixup for files that were removed by r303)
Tassilo Philipp
parents:
150
diff
changeset
|
27 set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") |
dc8bbffc39e6
- fix for some cmake/cpack doc paths (fixup for files that were removed by r303)
Tassilo Philipp
parents:
150
diff
changeset
|
28 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") |
0 | 29 if(APPLE) |
316
dc8bbffc39e6
- fix for some cmake/cpack doc paths (fixup for files that were removed by r303)
Tassilo Philipp
parents:
150
diff
changeset
|
30 set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README") |
0 | 31 endif(APPLE) |
32 set(CPACK_PACKAGE_NAME "dyncall") | |
33 include(CPack) | |
34 | |
35 # add cmake modules shipped with the package to cmake's module path. | |
36 # currently we have no use for this, but maybe later.. | |
37 #set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/buildsys/cmake/Modules" "${CMAKE_MODULE_PATH}") | |
38 | |
149
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
39 option(LANG_CXX "Enable and build C++ tests" ON) |
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
40 |
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
41 if(LANG_CXX) |
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
42 enable_language(CXX) |
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
43 endif() |
0 | 44 |
150
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
45 include(CheckCCompilerFlag) |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
46 check_c_compiler_flag("-fPIC -Werror" COMPILER_HAS_FPIC) |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
47 |
371
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
48 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
49 # compile_asm(TARGET target ASM_FILES file1 [file2 ...] OUTPUT_OBJECTS [variableName]) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
50 # CMake does not support the ARM or ARM64 assemblers on Windows when using the |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
51 # MSBuild generator. |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
52 # credit to dotnet/runtime: |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
53 # https://github.com/dotnet/runtime/blob/e98fb61d8b4bb6687ccddead861d8b140751647b/eng/native/functions.cmake#L173-L207 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
54 function(compile_asm) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
55 set(options "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
56 set(oneValueArgs TARGET OUTPUT_OBJECTS) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
57 set(multiValueArgs ASM_FILES) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
58 cmake_parse_arguments(COMPILE_ASM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV}) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
59 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
60 set (ASSEMBLED_OBJECTS "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
61 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
62 foreach(ASM_FILE ${COMPILE_ASM_ASM_FILES}) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
63 get_filename_component(name ${ASM_FILE} NAME_WE) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
64 # Produce object file where CMake would store .obj files for an OBJECT library. |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
65 # ex: artifacts\obj\coreclr\windows.arm64.Debug\src\vm\wks\cee_wks.dir\Debug\AsmHelpers.obj |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
66 set (OBJ_FILE "${CMAKE_CURRENT_BINARY_DIR}/${COMPILE_ASM_TARGET}.dir/${CMAKE_CFG_INTDIR}/${name}.obj") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
67 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
68 # Need to compile asm file using custom command as include directories are not provided to asm compiler |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
69 add_custom_command(OUTPUT ${OBJ_FILE} |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
70 COMMAND "${CMAKE_ASM_COMPILER}" ${ASM_INCLUDE_DIRECTORIES} -o ${OBJ_FILE} ${ASM_FILE} |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
71 DEPENDS ${ASM_FILE} |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
72 COMMENT "Assembling ${ASM_FILE} ---> \"${CMAKE_ASM_COMPILER}\" ${ASM_INCLUDE_DIRECTORIES} -o ${OBJ_FILE} ${ASM_FILE}"+ COMMENT "Assembling ${ASM_FILE} ---> \"${CMAKE_ASM_COMPILER}\" ${ASM_INCLUDE_DIRECTORIES} -o ${OBJ_FILE} ${ASM_FILE}") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
73 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
74 # mark obj as source that does not require compile |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
75 set_source_files_properties(${OBJ_FILE} PROPERTIES EXTERNAL_OBJECT TRUE) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
76 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
77 # Add the generated OBJ in the dependency list so that it gets consumed during linkage |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
78 list(APPEND ASSEMBLED_OBJECTS ${OBJ_FILE}) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
79 endforeach() |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
80 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
81 set(${COMPILE_ASM_OUTPUT_OBJECTS} ${ASSEMBLED_OBJECTS} PARENT_SCOPE) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
82 endfunction() |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
83 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
84 |
0 | 85 if(MSVC) |
371
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
86 if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
87 # Explicitly specify the assembler to be used for Arm64 compile |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
88 file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}\\bin\\HostX64\\arm64\\armasm64.exe" CMAKE_ASM_COMPILER) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
89 # file(TO_CMAKE_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX64\\arm64\\armasm64.exe" CMAKE_ASM_COMPILER) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
90 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
91 set(CMAKE_ASM_MASM_COMPILER ${CMAKE_ASM_COMPILER}) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
92 message("CMAKE_ASM_MASM_COMPILER explicitly set to: ${CMAKE_ASM_MASM_COMPILER}") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
93 # Enable generic assembly compilation to avoid CMake generate VS proj files that explicitly |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
94 # use ml[64].exe as the assembler. |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
95 enable_language(ASM) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
96 set(CMAKE_ASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
97 set(CMAKE_ASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
98 set(CMAKE_ASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
99 set(CMAKE_ASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
100 set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
101 else() |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
102 enable_language(ASM_MASM) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
103 |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
104 #if(CMAKE_SIZEOF_VOID_P MATCHES 8) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
105 # set(CMAKE_ASM_COMPILER "ml64") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
106 #else() |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
107 # set(CMAKE_ASM_COMPILER "ml") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
108 #endif() |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
109 #set(CMAKE_ASM_COMPILER_ARG1 "/c") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
110 #set(CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS asm) |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
111 #set(CMAKE_ASM_MASM_COMPILE_OBJECT "<CMAKE_ASM_MASM_COMPILER> <FLAGS> /c /Fo <OBJECT> <SOURCE>") |
451299d50c1a
- windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents:
316
diff
changeset
|
112 endif() |
31
6e7b1b7ad9d3
Fixed failing builds when the compiler is ICC/ICPC
Snaipe <franklinmathieu@gmail.com>
parents:
3
diff
changeset
|
113 elseif(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Intel") |
150
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
114 if(COMPILER_HAS_FPIC) |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
115 # when used in shared libraries, -fPIC is required by several architectures |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
116 # and platforms (observed on AMD64, Solaris/Sparc). |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
117 # we enable it per default here. |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
118 add_definitions("-fPIC") |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
119 endif() |
0 | 120 # enable gcc as front-end to assembler for .S files |
121 set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}") | |
122 set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c") | |
123 enable_language(ASM) | |
3 | 124 elseif(CMAKE_COMPILER_IS_CLANG) |
0 | 125 elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "SunPro") |
126 set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}") | |
127 set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c") | |
128 enable_language(ASM) | |
3 | 129 else() |
149
c12120a1fbc0
- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
cslag
parents:
31
diff
changeset
|
130 if (CMAKE_C_COMPILER_ID STREQUAL "Clang") |
150
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
131 if(COMPILER_HAS_FPIC) |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
132 add_definitions("-fPIC") |
3cb226f48495
- make cmake based builds check if compiler has -fPIC flag, in order to silence warnings if not (thanks Franklin Mathieu)
cslag
parents:
149
diff
changeset
|
133 endif() |
3 | 134 # enable gcc as front-end to assembler for .S files |
135 set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}") | |
136 set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c") | |
137 enable_language(ASM) | |
138 endif() | |
0 | 139 endif() |
140 | |
141 add_subdirectory(dynload) | |
142 add_subdirectory(dyncall) | |
143 add_subdirectory(dyncallback) | |
144 add_subdirectory(doc/manual EXCLUDE_FROM_ALL) | |
145 add_subdirectory(test EXCLUDE_FROM_ALL) | |
146 | |
147 # install cmake Find scripts (disabled per default) | |
148 | |
149 option(INSTALL_CMAKE_MODULES "install cmake modules to locate dyncall" "NO") | |
150 | |
151 if(INSTALL_CMAKE_MODULES) | |
152 file(GLOB INSTALL_CMAKE_MODULES_FILES buildsys/cmake/Modules/Find*.cmake) | |
153 install(FILES ${INSTALL_CMAKE_MODULES_FILES} DESTINATION ${CMAKE_ROOT}/Modules) | |
154 endif(INSTALL_CMAKE_MODULES) | |
155 |