Simplify CMake code (#127683)

Due to the recent adoption of find(python), it is possible to further simplify some CMake code.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/127683
Approved by: https://github.com/ezyang
This commit is contained in:
cyy
2024-06-05 15:17:31 +00:00
committed by PyTorch MergeBot
parent df75a9dc80
commit 3d617333e7
4 changed files with 6 additions and 52 deletions

View File

@ -386,6 +386,7 @@ if(UNIX AND NOT APPLE)
endif(UNIX AND NOT APPLE)
if(UNIX)
include(CheckFunctionExists)
set(CMAKE_EXTRA_INCLUDE_FILES "sys/mman.h")
CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
if(HAVE_MMAP)

View File

@ -346,7 +346,7 @@ add_custom_command(
OUTPUT
${TORCH_GENERATED_CODE}
COMMAND
"${Python_EXECUTABLE}" tools/setup_helpers/generate_code.py
Python::Interpreter tools/setup_helpers/generate_code.py
--native-functions-path "aten/src/ATen/native/native_functions.yaml"
--tags-path "aten/src/ATen/native/tags.yaml"
$<$<BOOL:${INTERN_DISABLE_AUTOGRAD}>:--disable-autograd>
@ -1094,7 +1094,7 @@ if(BUILD_LITE_INTERPRETER AND SELECTED_OP_LIST)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/aten/src/ATen/selected_mobile_ops.h
COMMAND
"${Python_EXECUTABLE}"
Python::Interpreter
-m tools.code_analyzer.gen_oplist
--model_file_list_path "${SELECTED_OP_LIST}"
--output_dir "${CMAKE_BINARY_DIR}/aten/src/ATen"
@ -1109,7 +1109,7 @@ if(BUILD_LITE_INTERPRETER AND SELECTED_OP_LIST)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/aten/src/ATen/selected_mobile_ops.h
COMMAND
"${Python_EXECUTABLE}"
Python::Interpreter
-m tools.lite_interpreter.gen_selected_mobile_ops_header
--yaml_file_path "${SELECTED_OP_LIST}"
--output_file_path "${CMAKE_BINARY_DIR}/aten/src/ATen"
@ -1887,50 +1887,10 @@ endif()
# only rerun when needed.
if(BUILD_PYTHON)
# Python site-packages
# Get canonical directory for python site packages (relative to install
# location). It varies from system to system.
# We should pin the path separator to the forward slash on Windows.
# More details can be seen at
# https://github.com/pytorch/pytorch/tree/main/tools/build_pytorch_libs.bat#note-backslash-munging-on-windows
pycmd(PYTHON_SITE_PACKAGES "
import os
import sysconfig
relative_site_packages = sysconfig.get_path('purelib').replace(sysconfig.get_path('data'), '').lstrip(os.path.sep)
print(relative_site_packages)
")
file(TO_CMAKE_PATH ${PYTHON_SITE_PACKAGES} PYTHON_SITE_PACKAGES)
set(PYTHON_SITE_PACKAGES ${PYTHON_SITE_PACKAGES} PARENT_SCOPE) # for Summary
# ---[ Options.
set(PYTHON_LIB_REL_PATH "${PYTHON_SITE_PACKAGES}" CACHE STRING "Python installation path (relative to CMake installation prefix)")
set(PYTHON_LIB_REL_PATH "${Python_SITELIB}" CACHE STRING "Python installation path (relative to CMake installation prefix)")
message(STATUS "Using ${PYTHON_LIB_REL_PATH} as python relative installation path")
# Python extension suffix
# Try to get from python through sysconfig.get_env_var('EXT_SUFFIX') first,
# fallback to ".pyd" if windows and ".so" for all others.
pycmd(PY_EXT_SUFFIX "
def get_ext_suffix():
import sys
import sysconfig
return sysconfig.get_config_var('EXT_SUFFIX')
suffix = get_ext_suffix()
if suffix is not None:
print(suffix)
else:
print()
")
if("${PY_EXT_SUFFIX}" STREQUAL "")
if(MSVC)
set(PY_EXT_SUFFIX ".pyd")
else()
set(PY_EXT_SUFFIX ".so")
endif()
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947 in EmbeddingBag.cpp
set_source_files_properties(../aten/src/ATen/native/EmbeddingBag.cpp PROPERTIES COMPILE_FLAGS -Wno-attributes)
endif()
set(build_files)
foreach(python_src ${PYTHON_SRCS})

View File

@ -1,11 +1,3 @@
if(UNIX)
# prevent Unknown CMake command "check_function_exists".
include(CheckFunctionExists)
endif()
include(CheckIncludeFile)
include(CheckCSourceCompiles)
include(CheckCSourceRuns)
include(CheckCCompilerFlag)
include(CheckCXXSourceCompiles)
include(CheckCXXCompilerFlag)
include(CMakePushCheckState)

View File

@ -1,4 +1,5 @@
INCLUDE(CheckCSourceRuns)
INCLUDE(CheckCSourceCompiles)
INCLUDE(CheckCXXSourceRuns)
SET(AVX_CODE "