Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
pybind11
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
pybind11
Commits
da803eb0
Commit
da803eb0
authored
Aug 01, 2020
by
Henry Schreiner
Committed by
Henry Schreiner
Aug 06, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: duplicate target names removed
parent
df115977
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
42 additions
and
37 deletions
+42
-37
tests/test_cmake_build/CMakeLists.txt
+7
-5
tests/test_cmake_build/installed_embed/CMakeLists.txt
+6
-5
tests/test_cmake_build/installed_function/CMakeLists.txt
+5
-6
tests/test_cmake_build/installed_target/CMakeLists.txt
+7
-8
tests/test_cmake_build/subdirectory_embed/CMakeLists.txt
+5
-3
tests/test_cmake_build/subdirectory_function/CMakeLists.txt
+6
-5
tests/test_cmake_build/subdirectory_target/CMakeLists.txt
+6
-5
No files found.
tests/test_cmake_build/CMakeLists.txt
View file @
da803eb0
add_custom_target
(
test_cmake_build
)
function
(
pybind11_add_build_test name
)
cmake_parse_arguments
(
ARG
"INSTALL"
""
""
${
ARGN
}
)
cmake_parse_arguments
(
PARSE_ARGV 1 ARG
"INSTALL"
""
""
)
set
(
build_options
"-DCMAKE_PREFIX_PATH=
${
pybind11_BINARY_DIR
}
/mock_install"
...
...
@@ -14,10 +14,12 @@ function(pybind11_add_build_test name)
if
(
NOT ARG_INSTALL
)
list
(
APPEND build_options
"-DPYBIND11_PROJECT_DIR=
${
pybind11_SOURCE_DIR
}
"
)
else
()
list
(
APPEND build_options
"-DCMAKE_PREFIX_PATH=
${
pybind11_BINARY_DIR
}
/mock_install"
)
endif
()
add_custom_target
(
test_
${
name
}
test_
build_
${
name
}
${
CMAKE_CTEST_COMMAND
}
--build-and-test
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
name
}
"
...
...
@@ -32,13 +34,13 @@ function(pybind11_add_build_test name)
--build-makeprogram
${
CMAKE_MAKE_PROGRAM
}
--build-target
check
check
_
${
name
}
--build-options
${
build_options
}
)
if
(
ARG_INSTALL
)
add_dependencies
(
test_
${
name
}
mock_install
)
add_dependencies
(
test_
build_
${
name
}
mock_install
)
endif
()
add_dependencies
(
test_cmake_build test_
${
name
}
)
add_dependencies
(
test_cmake_build test_
build_
${
name
}
)
endfunction
()
pybind11_add_build_test
(
subdirectory_function
)
...
...
tests/test_cmake_build/installed_embed/CMakeLists.txt
View file @
da803eb0
...
...
@@ -11,15 +11,16 @@ endif()
project
(
test_installed_embed CXX
)
set
(
CMAKE_MODULE_PATH
""
)
find_package
(
pybind11 CONFIG REQUIRED
)
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
)
add_executable
(
test_installed_embed ../embed.cpp
)
target_link_libraries
(
test_installed_embed PRIVATE pybind11::embed
)
set_target_properties
(
test_installed_embed PROPERTIES OUTPUT_NAME test_cmake_build
)
# 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_buil
d PROPERTIES NO_SYSTEM_FROM_IMPORTED ON
)
set_target_properties
(
test_
installed_embe
d PROPERTIES NO_SYSTEM_FROM_IMPORTED ON
)
add_custom_target
(
check $<TARGET_FILE:test_cmake_build>
${
PROJECT_SOURCE_DIR
}
/../test.py
)
add_custom_target
(
check_installed_embed $<TARGET_FILE:test_installed_embed>
${
PROJECT_SOURCE_DIR
}
/../test.py
)
tests/test_cmake_build/installed_function/CMakeLists.txt
View file @
da803eb0
...
...
@@ -9,22 +9,21 @@ else()
cmake_policy
(
VERSION 3.18
)
endif
()
project
(
test_installed_module CXX
)
set
(
CMAKE_MODULE_PATH
""
)
project
(
test_installed_function CXX
)
find_package
(
pybind11 CONFIG REQUIRED
)
message
(
STATUS
"Found pybind11 v
${
pybind11_VERSION
}
${
pybind11_VERSION_TYPE
}
:
${
pybind11_INCLUDE_DIRS
}
"
)
pybind11_add_module
(
test_cmake_build SHARED NO_EXTRAS ../main.cpp
)
pybind11_add_module
(
test_installed_function SHARED NO_EXTRAS ../main.cpp
)
set_target_properties
(
test_installed_function PROPERTIES OUTPUT_NAME test_cmake_build
)
add_custom_target
(
check
check
_installed_function
${
CMAKE_COMMAND
}
-E
env
PYTHONPATH=$<TARGET_FILE_DIR:test_
cmake_build
>
PYTHONPATH=$<TARGET_FILE_DIR:test_
installed_function
>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
tests/test_cmake_build/installed_target/CMakeLists.txt
View file @
da803eb0
...
...
@@ -11,29 +11,28 @@ endif()
project
(
test_installed_target CXX
)
set
(
CMAKE_MODULE_PATH
""
)
find_package
(
pybind11 CONFIG REQUIRED
)
message
(
STATUS
"Found pybind11 v
${
pybind11_VERSION
}
:
${
pybind11_INCLUDE_DIRS
}
"
)
add_library
(
test_
cmake_build
MODULE ../main.cpp
)
add_library
(
test_
installed_target
MODULE ../main.cpp
)
target_link_libraries
(
test_cmake_build PRIVATE pybind11::module
)
target_link_libraries
(
test_installed_target PRIVATE pybind11::module
)
set_target_properties
(
test_installed_target PROPERTIES OUTPUT_NAME test_cmake_build
)
# make sure result is, for example, test_installed_target.so, not libtest_installed_target.dylib
set_target_properties
(
test_
cmake_build
PROPERTIES PREFIX
"
${
PYTHON_MODULE_PREFIX
}
"
set_target_properties
(
test_
installed_target
PROPERTIES PREFIX
"
${
PYTHON_MODULE_PREFIX
}
"
SUFFIX
"
${
PYTHON_MODULE_EXTENSION
}
"
)
# Do not treat includes from IMPORTED target as SYSTEM (Python headers in pybind11::module).
# 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
)
set_target_properties
(
test_
installed_target
PROPERTIES NO_SYSTEM_FROM_IMPORTED ON
)
add_custom_target
(
check
check
_installed_target
${
CMAKE_COMMAND
}
-E
env
PYTHONPATH=$<TARGET_FILE_DIR:test_
cmake_build
>
PYTHONPATH=$<TARGET_FILE_DIR:test_
installed_target
>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
tests/test_cmake_build/subdirectory_embed/CMakeLists.txt
View file @
da803eb0
...
...
@@ -19,10 +19,12 @@ set(PYBIND11_EXPORT_NAME test_export)
add_subdirectory
(
${
PYBIND11_PROJECT_DIR
}
pybind11
)
# Test basic target functionality
add_executable
(
test_cmake_build ../embed.cpp
)
target_link_libraries
(
test_cmake_build PRIVATE pybind11::embed
)
add_executable
(
test_subdirectory_embed ../embed.cpp
)
target_link_libraries
(
test_subdirectory_embed PRIVATE pybind11::embed
)
set_target_properties
(
test_subdirectory_embed PROPERTIES OUTPUT_NAME test_cmake_build
)
add_custom_target
(
check $<TARGET_FILE:test_cmake_build>
${
PROJECT_SOURCE_DIR
}
/../test.py
)
add_custom_target
(
check_subdirectory_embed $<TARGET_FILE:test_subdirectory_embed>
${
PROJECT_SOURCE_DIR
}
/../test.py
)
# Test custom export group -- PYBIND11_EXPORT_NAME
add_library
(
test_embed_lib ../embed.cpp
)
...
...
tests/test_cmake_build/subdirectory_function/CMakeLists.txt
View file @
da803eb0
...
...
@@ -9,17 +9,18 @@ else()
cmake_policy
(
VERSION 3.18
)
endif
()
project
(
test_subdirectory_
module
CXX
)
project
(
test_subdirectory_
function
CXX
)
add_subdirectory
(
${
PYBIND11_PROJECT_DIR
}
pybind11
)
pybind11_add_module
(
test_cmake_build THIN_LTO ../main.cpp
)
add_subdirectory
(
"
${
PYBIND11_PROJECT_DIR
}
"
pybind11
)
pybind11_add_module
(
test_subdirectory_function THIN_LTO ../main.cpp
)
set_target_properties
(
test_subdirectory_function PROPERTIES OUTPUT_NAME test_cmake_build
)
add_custom_target
(
check
check
_subdirectory_function
${
CMAKE_COMMAND
}
-E
env
PYTHONPATH=$<TARGET_FILE_DIR:test_
cmake_build
>
PYTHONPATH=$<TARGET_FILE_DIR:test_
subdirectory_function
>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
tests/test_cmake_build/subdirectory_target/CMakeLists.txt
View file @
da803eb0
...
...
@@ -13,20 +13,21 @@ project(test_subdirectory_target CXX)
add_subdirectory
(
${
PYBIND11_PROJECT_DIR
}
pybind11
)
add_library
(
test_cmake_build MODULE ../main.cpp
)
add_library
(
test_subdirectory_target MODULE ../main.cpp
)
set_target_properties
(
test_subdirectory_target PROPERTIES OUTPUT_NAME test_cmake_build
)
target_link_libraries
(
test_
cmake_build
PRIVATE pybind11::module
)
target_link_libraries
(
test_
subdirectory_target
PRIVATE pybind11::module
)
# make sure result is, for example, test_installed_target.so, not libtest_installed_target.dylib
set_target_properties
(
test_
cmake_build
PROPERTIES PREFIX
"
${
PYTHON_MODULE_PREFIX
}
"
set_target_properties
(
test_
subdirectory_target
PROPERTIES PREFIX
"
${
PYTHON_MODULE_PREFIX
}
"
SUFFIX
"
${
PYTHON_MODULE_EXTENSION
}
"
)
add_custom_target
(
check
check
_subdirectory_target
${
CMAKE_COMMAND
}
-E
env
PYTHONPATH=$<TARGET_FILE_DIR:test_
cmake_build
>
PYTHONPATH=$<TARGET_FILE_DIR:test_
subdirectory_target
>
${
PYTHON_EXECUTABLE
}
${
PROJECT_SOURCE_DIR
}
/../test.py
${
PROJECT_NAME
}
)
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