Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
gaoqiong
pybind11
Commits
1f53c373
Commit
1f53c373
authored
Jul 23, 2020
by
Henry Schreiner
Committed by
Henry Schreiner
Jul 26, 2020
Browse files
fix: C++17 mode on Clang may error
parent
e428a7f6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
56 additions
and
3 deletions
+56
-3
tests/CMakeLists.txt
tests/CMakeLists.txt
+3
-3
tests/test_cmake_build/installed_embed/CMakeLists.txt
tests/test_cmake_build/installed_embed/CMakeLists.txt
+9
-0
tests/test_cmake_build/installed_target/CMakeLists.txt
tests/test_cmake_build/installed_target/CMakeLists.txt
+8
-0
tests/test_cmake_build/subdirectory_embed/CMakeLists.txt
tests/test_cmake_build/subdirectory_embed/CMakeLists.txt
+10
-0
tests/test_cmake_build/subdirectory_target/CMakeLists.txt
tests/test_cmake_build/subdirectory_target/CMakeLists.txt
+8
-0
tests/test_embed/CMakeLists.txt
tests/test_embed/CMakeLists.txt
+10
-0
tools/pybind11Tools.cmake
tools/pybind11Tools.cmake
+8
-0
No files found.
tests/CMakeLists.txt
View file @
1f53c373
...
...
@@ -152,10 +152,10 @@ function(pybind11_enable_warnings target_name)
endif
()
endif
()
if
(
CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD
STREQUAL
"14"
)
if
(
CMAKE_CXX_STANDARD AND
CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD
LESS 17
)
target_compile_options
(
${
target_name
}
PUBLIC -Wno-deprecated-register
)
else
if
(
NOT CMAKE_CXX_STANDARD VERSION_LESS 17
)
else
(
)
target_compile_options
(
${
target_name
}
PUBLIC -Wno-register
)
endif
()
endif
()
...
...
tests/test_cmake_build/installed_embed/CMakeLists.txt
View file @
1f53c373
...
...
@@ -8,8 +8,17 @@ message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
add_executable
(
test_cmake_build ../embed.cpp
)
target_link_libraries
(
test_cmake_build PRIVATE pybind11::embed
)
# Do not treat includes from IMPORTED target as SYSTEM (Python headers in pybind11::embed).
# This may be needed to resolve header conflicts, e.g. between Python release and debug headers.
set_target_properties
(
test_cmake_build PROPERTIES NO_SYSTEM_FROM_IMPORTED ON
)
add_custom_target
(
check $<TARGET_FILE:test_cmake_build>
${
PROJECT_SOURCE_DIR
}
/../test.py
)
if
(
CMAKE_CXX_STANDARD AND CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
test_cmake_build PUBLIC -Wno-deprecated-register
)
else
()
target_compile_options
(
test_cmake_build PUBLIC -Wno-register
)
endif
()
endif
()
tests/test_cmake_build/installed_target/CMakeLists.txt
View file @
1f53c373
...
...
@@ -20,3 +20,11 @@ set_target_properties(test_cmake_build PROPERTIES NO_SYSTEM_FROM_IMPORTED ON)
add_custom_target
(
check
${
CMAKE_COMMAND
}
-E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
if
(
CMAKE_CXX_STANDARD AND CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
test_cmake_build PUBLIC -Wno-deprecated-register
)
else
()
target_compile_options
(
test_cmake_build PUBLIC -Wno-register
)
endif
()
endif
()
tests/test_cmake_build/subdirectory_embed/CMakeLists.txt
View file @
1f53c373
...
...
@@ -23,3 +23,13 @@ install(TARGETS test_embed_lib
RUNTIME DESTINATION lib
)
install
(
EXPORT test_export
DESTINATION lib/cmake/test_export/test_export-Targets.cmake
)
if
(
CMAKE_CXX_STANDARD AND CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
test_embed_lib PUBLIC -Wno-deprecated-register
)
target_compile_options
(
test_cmake_build PUBLIC -Wno-deprecated-register
)
else
()
target_compile_options
(
test_embed_lib PUBLIC -Wno-register
)
target_compile_options
(
test_cmake_build PUBLIC -Wno-register
)
endif
()
endif
()
tests/test_cmake_build/subdirectory_target/CMakeLists.txt
View file @
1f53c373
...
...
@@ -13,3 +13,11 @@ set_target_properties(test_cmake_build PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX
add_custom_target
(
check
${
CMAKE_COMMAND
}
-E env PYTHONPATH=$<TARGET_FILE_DIR:test_cmake_build>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
if
(
CMAKE_CXX_STANDARD AND CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
test_cmake_build PUBLIC -Wno-deprecated-register
)
else
()
target_compile_options
(
test_cmake_build PUBLIC -Wno-register
)
endif
()
endif
()
tests/test_embed/CMakeLists.txt
View file @
1f53c373
...
...
@@ -43,3 +43,13 @@ endforeach()
add_dependencies
(
cpptest external_module
)
add_dependencies
(
check cpptest
)
if
(
CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
)
if
(
CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
test_embed PUBLIC -Wno-deprecated-register
)
target_compile_options
(
external_module PUBLIC -Wno-deprecated-register
)
else
()
target_compile_options
(
test_embed PUBLIC -Wno-register
)
target_compile_options
(
external_module PUBLIC -Wno-register
)
endif
()
endif
()
tools/pybind11Tools.cmake
View file @
1f53c373
...
...
@@ -224,6 +224,14 @@ function(pybind11_add_module target_name)
endif
()
endif
()
# Python 2 doesn't really support C++17, Clang warns/errors over it
if
(
CMAKE_CXX_STANDARD
AND CMAKE_CXX_COMPILER_ID MATCHES
"Clang"
AND PYTHON_VERSION VERSION_LESS 3.0
AND NOT CMAKE_CXX_STANDARD LESS 17
)
target_compile_options
(
${
target_name
}
PUBLIC -Wno-register
)
endif
()
if
(
ARG_NO_EXTRAS
)
return
()
endif
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment