Don't enable ASM when OPENSSL_NO_ASM is set.
When building with OPENSSL_NO_ASM do not try to enable_language(ASM).
Even though the assembly source isn't being built this still causes
CMake to look for the assembler which will fail on platforms where one
is not available.
Change-Id: Ie4893f606143e8f8ca0807114068e577dc1e23e9
Reviewed-on: https://boringssl-review.googlesource.com/16904
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 1fde8e2..746cb19 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -1,61 +1,63 @@
include_directories(../include)
-if(UNIX)
- if (${ARCH} STREQUAL "aarch64")
- # The "armx" Perl scripts look for "64" in the style argument
- # in order to decide whether to generate 32- or 64-bit asm.
- if (APPLE)
- set(PERLASM_STYLE ios64)
+if(NOT OPENSSL_NO_ASM)
+ if(UNIX)
+ if (${ARCH} STREQUAL "aarch64")
+ # The "armx" Perl scripts look for "64" in the style argument
+ # in order to decide whether to generate 32- or 64-bit asm.
+ if (APPLE)
+ set(PERLASM_STYLE ios64)
+ else()
+ set(PERLASM_STYLE linux64)
+ endif()
+ elseif (${ARCH} STREQUAL "arm")
+ if (APPLE)
+ set(PERLASM_STYLE ios32)
+ else()
+ set(PERLASM_STYLE linux32)
+ endif()
+ elseif (${ARCH} STREQUAL "ppc64le")
+ set(PERLASM_STYLE linux64le)
else()
- set(PERLASM_STYLE linux64)
+ if (${ARCH} STREQUAL "x86")
+ set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2")
+ endif()
+ if (APPLE)
+ set(PERLASM_STYLE macosx)
+ else()
+ set(PERLASM_STYLE elf)
+ endif()
endif()
- elseif (${ARCH} STREQUAL "arm")
+ set(ASM_EXT S)
+ enable_language(ASM)
+ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
+
+ # Clang's integerated assembler does not support debug symbols.
+ if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
+ endif()
+
+ # CMake does not add -isysroot and -arch flags to assembly.
if (APPLE)
- set(PERLASM_STYLE ios32)
- else()
- set(PERLASM_STYLE linux32)
+ if (CMAKE_OSX_SYSROOT)
+ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
+ endif()
+ foreach(arch ${CMAKE_OSX_ARCHITECTURES})
+ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}")
+ endforeach()
endif()
- elseif (${ARCH} STREQUAL "ppc64le")
- set(PERLASM_STYLE linux64le)
else()
- if (${ARCH} STREQUAL "x86")
- set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2")
- endif()
- if (APPLE)
- set(PERLASM_STYLE macosx)
+ if (CMAKE_CL_64)
+ set(PERLASM_STYLE nasm)
else()
- set(PERLASM_STYLE elf)
+ set(PERLASM_STYLE win32n)
+ set(PERLASM_FLAGS "-DOPENSSL_IA32_SSE2")
endif()
- endif()
- set(ASM_EXT S)
- enable_language(ASM)
- set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
- # Clang's integerated assembler does not support debug symbols.
- if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
- set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
+ # On Windows, we use the NASM output, specifically built with Yasm.
+ set(ASM_EXT asm)
+ enable_language(ASM_NASM)
endif()
-
- # CMake does not add -isysroot and -arch flags to assembly.
- if (APPLE)
- if (CMAKE_OSX_SYSROOT)
- set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
- endif()
- foreach(arch ${CMAKE_OSX_ARCHITECTURES})
- set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}")
- endforeach()
- endif()
-else()
- if (CMAKE_CL_64)
- set(PERLASM_STYLE nasm)
- else()
- set(PERLASM_STYLE win32n)
- set(PERLASM_FLAGS "-DOPENSSL_IA32_SSE2")
- endif()
-
- # On Windows, we use the NASM output, specifically built with Yasm.
- set(ASM_EXT asm)
- enable_language(ASM_NASM)
endif()
function(perlasm dest src)