More disambiguation of Python in makefiles (#18284)
[mono-project.git] / mono / btls / CMakeLists.txt
blob992f41e4c7fb1ddb4dce2f7de60385a89642b45c
1 cmake_minimum_required (VERSION 2.8.10)
3 project (mono-btls)
5 if(POLICY CMP0026)
6         cmake_policy(SET CMP0026 NEW)
7 endif()
8 if(POLICY CMP0042)
9         cmake_policy(SET CMP0042 NEW)
10 endif()
12 enable_language(C)
13 enable_language(CXX)
15 find_program(CCACHE_PROGRAM ccache)
16 if(CCACHE_PROGRAM)
17     set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
18 endif()
20 if (MSVC OR CYGWIN)
21         set(BTLS_HOST_WIN32 1)
22 endif ()
24 if (NOT OPENSSL_NO_ASM)
25         if (BTLS_HOST_WIN32)
26                 if (CYGWIN AND "${BTLS_ARCH}" STREQUAL "i386")
27                         set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
28                 elseif (CYGWIN AND "${BTLS_ARCH}" STREQUAL "x86_64")
29                         set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
30                 endif ()
31                 enable_language(ASM_NASM)
32         else ()
33                 # FIXME: cmake's asm detection is broken when using xcrun.
34                 set (CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
35                 set (CMAKE_ASM_COMPILER_ARG1 "${CMAKE_C_COMPILER_ARG1}")
36                 set (CMAKE_ASM_COMPILER_ID "${CMAKE_C_COMPILER_ID}")
37                 enable_language(ASM)
38         endif ()
39 endif ()
41 if (NOT "${BTLS_ARCH}" STREQUAL "")
42         message (STATUS "SET ARCH: ${BTLS_ARCH}")
43         set (CMAKE_SYSTEM_PROCESSOR "${BTLS_ARCH}")
44 endif ()
46 if (NOT MSVC)
47         if(${CMAKE_SYSTEM_NAME} MATCHES "AIX" OR ${CMAKE_SYSTEM_NAME} MATCHES "OS400")
48                 # GCC+XCOFF doesn't support -fvisibility=hidden, and we would prefer XCOFF debugging info.
49                 set (C_CXX_FLAGS "-Wall -Wsign-compare -Wmissing-field-initializers -fPIC -gxcoff")
50         else()
51                 set (C_CXX_FLAGS "-Wall -Wsign-compare -Wmissing-field-initializers -fPIC -ggdb -fvisibility=hidden")
52         endif()
54         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CXX_FLAGS} ${BTLS_CFLAGS}")
55         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CXX_FLAGS} ${BTLS_CFLAGS}")
56 else ()
57         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${BTLS_CFLAGS}")
58         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${BTLS_CFLAGS}")
59 endif ()
61 if (NOT OPENSSL_NO_ASM)
62         if (BTLS_HOST_WIN32)
63                 set (CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} ${BTLS_CFLAGS}")
64         else ()
65                 set (CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${BTLS_CFLAGS}")
66         endif ()
67 endif ()
69 set (CMAKE_MACOSX_RPATH 1)
70 set (MONO_BTLS 1)
72 set(BUILD_SHARED_LIBS_SAVED "${BUILD_SHARED_LIBS}")
73 set(BUILD_SHARED_LIBS OFF)
74 add_subdirectory (${BTLS_ROOT} boringssl)
75 set(BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS_SAVED}")
77 include_directories (
78         ${SRC_DIR}
79         ${BTLS_ROOT}/include
82 set (
83         MONO_BTLS_SOURCES
85         btls-bio.c
86         btls-bio.h
87         btls-error.c
88         btls-error.h
89         btls-key.c
90         btls-key.h
91         btls-pkcs12.c
92         btls-pkcs12.h
93         btls-ssl-ctx.c
94         btls-ssl-ctx.h
95         btls-ssl.c
96         btls-ssl.h
97         btls-time64.c
98         btls-util.c
99         btls-util.h
100         btls-x509-chain.c
101         btls-x509-chain.h
102         btls-x509-crl.c
103         btls-x509-crl.h
104         btls-x509-lookup.c
105         btls-x509-lookup.h
106         btls-x509-lookup-mono.c
107         btls-x509-lookup-mono.h
108         btls-x509-name.c
109         btls-x509-name.h
110         btls-x509-revoked.c
111         btls-x509-revoked.h
112         btls-x509-store-ctx.c
113         btls-x509-store-ctx.h
114         btls-x509-store.c
115         btls-x509-store.h
116         btls-x509-verify-param.c
117         btls-x509-verify-param.h
118         btls-x509.c
119         btls-x509.h
121         ${BORINGSSL_OBJECTS}
124 add_library (mono-btls-shared SHARED ${MONO_BTLS_SOURCES})
126 if (BTLS_HOST_WIN32)
127         set (CMAKE_SHARED_LIBRARY_PREFIX "lib")
128 endif ()
130 if (CYGWIN)
131         target_link_libraries (mono-btls-shared wsock32 ws2_32)
132 endif ()