File: check_isa_default.cmake

package info (click to toggle)
embree 3.13.5%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 27,924 kB
  • sloc: cpp: 180,815; xml: 3,877; ansic: 2,957; python: 1,466; sh: 502; makefile: 229; csh: 42
file content (43 lines) | stat: -rw-r--r-- 2,080 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
## ======================================================================== ##
## Copyright 2017 Kitware, Inc.                                             ##
##                                                                          ##
## Licensed under the Apache License, Version 2.0 (the "License");          ##
## you may not use this file except in compliance with the License.         ##
## You may obtain a copy of the License at                                  ##
##                                                                          ##
##     http://www.apache.org/licenses/LICENSE-2.0                           ##
##                                                                          ##
## Unless required by applicable law or agreed to in writing, software      ##
## distributed under the License is distributed on an "AS IS" BASIS,        ##
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
## See the License for the specific language governing permissions and      ##
## limitations under the License.                                           ##
## ======================================================================== ##

SET(CHECK_ISA_DIR "${CMAKE_CURRENT_LIST_DIR}")
FUNCTION(CHECK_ISA_DEFAULT OUTVAR)

  TRY_COMPILE(COMPILER_SUPPORTS_ARM_NEON "${CMAKE_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/common/cmake/check_arm_neon.cpp")
  IF (COMPILER_SUPPORTS_ARM_NEON)
    SET(ISA_DEFAULT "NEON")
    SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
    RETURN()
  ENDIF()
  
  SET(ISA_DEFAULT_BIN "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/check_isa_default.bin")
  SET(SRC "${CHECK_ISA_DIR}/check_isa.cpp")
  TRY_COMPILE(ISA_DEFAULT_COMPILE
    "${CMAKE_BINARY_DIR}"
    "${SRC}"
    COPY_FILE "${ISA_DEFAULT_BIN}"
  )
  IF(NOT ISA_DEFAULT_COMPILE)
    SET(ISA_DEFAULT "SSE2")
    SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
    RETURN()
  ENDIF()
  
  FILE(STRINGS ${ISA_DEFAULT_BIN} ISA_DEFAULT REGEX "^ISA:")
  STRING(REPLACE "ISA:" "" ISA_DEFAULT "${ISA_DEFAULT}")
  SET(${OUTVAR} ${ISA_DEFAULT} PARENT_SCOPE)
ENDFUNCTION()