Move internal headers into `detail` subdirectory
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 842b59f..fb51d38 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,14 +36,15 @@
# NB: when adding a header don't forget to also add it to setup.py
set(PYBIND11_HEADERS
+ include/pybind11/detail/class.h
+ include/pybind11/detail/common.h
+ include/pybind11/detail/descr.h
+ include/pybind11/detail/typeid.h
include/pybind11/attr.h
include/pybind11/buffer_info.h
include/pybind11/cast.h
include/pybind11/chrono.h
- include/pybind11/class_support.h
- include/pybind11/common.h
include/pybind11/complex.h
- include/pybind11/descr.h
include/pybind11/options.h
include/pybind11/eigen.h
include/pybind11/embed.h
@@ -55,7 +56,6 @@
include/pybind11/pytypes.h
include/pybind11/stl.h
include/pybind11/stl_bind.h
- include/pybind11/typeid.h
)
string(REPLACE "include/" "${CMAKE_CURRENT_SOURCE_DIR}/include/"
PYBIND11_HEADERS "${PYBIND11_HEADERS}")
@@ -68,7 +68,7 @@
include(CMakePackageConfigHelpers)
# extract project version from source
-file(STRINGS "${PYBIND11_INCLUDE_DIR}/pybind11/common.h" pybind11_version_defines
+file(STRINGS "${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h" pybind11_version_defines
REGEX "#define PYBIND11_VERSION_(MAJOR|MINOR|PATCH) ")
foreach(ver ${pybind11_version_defines})
if (ver MATCHES "#define PYBIND11_VERSION_(MAJOR|MINOR|PATCH) +([^ ]+)$")
@@ -110,8 +110,7 @@
endif()
if (PYBIND11_INSTALL)
- install(FILES ${PYBIND11_HEADERS}
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pybind11)
+ install(DIRECTORY ${PYBIND11_INCLUDE_DIR}/pybind11 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
# GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
set(PYBIND11_CMAKECONFIG_INSTALL_DIR "share/cmake/${PROJECT_NAME}" CACHE STRING "install path for pybind11Config.cmake")
diff --git a/include/pybind11/buffer_info.h b/include/pybind11/buffer_info.h
index 1f5e3a9..9f072fa 100644
--- a/include/pybind11/buffer_info.h
+++ b/include/pybind11/buffer_info.h
@@ -9,7 +9,7 @@
#pragma once
-#include "common.h"
+#include "detail/common.h"
NAMESPACE_BEGIN(PYBIND11_NAMESPACE)
diff --git a/include/pybind11/cast.h b/include/pybind11/cast.h
index 41e65cc..e1823bd 100644
--- a/include/pybind11/cast.h
+++ b/include/pybind11/cast.h
@@ -11,8 +11,8 @@
#pragma once
#include "pytypes.h"
-#include "typeid.h"
-#include "descr.h"
+#include "detail/typeid.h"
+#include "detail/descr.h"
#include <array>
#include <limits>
#include <tuple>
diff --git a/include/pybind11/class_support.h b/include/pybind11/detail/class.h
similarity index 98%
rename from include/pybind11/class_support.h
rename to include/pybind11/detail/class.h
index d006a1e..6f9667e 100644
--- a/include/pybind11/class_support.h
+++ b/include/pybind11/detail/class.h
@@ -1,5 +1,5 @@
/*
- pybind11/class_support.h: Python C API implementation details for py::class_
+ pybind11/detail/class.h: Python C API implementation details for py::class_
Copyright (c) 2017 Wenzel Jakob <wenzel.jakob@epfl.ch>
@@ -9,7 +9,7 @@
#pragma once
-#include "attr.h"
+#include "../attr.h"
NAMESPACE_BEGIN(PYBIND11_NAMESPACE)
NAMESPACE_BEGIN(detail)
diff --git a/include/pybind11/common.h b/include/pybind11/detail/common.h
similarity index 99%
rename from include/pybind11/common.h
rename to include/pybind11/detail/common.h
index e83a647..2201d2b 100644
--- a/include/pybind11/common.h
+++ b/include/pybind11/detail/common.h
@@ -1,5 +1,5 @@
/*
- pybind11/common.h -- Basic macros
+ pybind11/detail/common.h -- Basic macros
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
diff --git a/include/pybind11/descr.h b/include/pybind11/detail/descr.h
similarity index 98%
rename from include/pybind11/descr.h
rename to include/pybind11/detail/descr.h
index f6c0a68..e3bf2ba 100644
--- a/include/pybind11/descr.h
+++ b/include/pybind11/detail/descr.h
@@ -1,5 +1,5 @@
/*
- pybind11/descr.h: Helper type for concatenating type signatures
+ pybind11/detail/descr.h: Helper type for concatenating type signatures
either at runtime (C++11) or compile time (C++14)
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
diff --git a/include/pybind11/typeid.h b/include/pybind11/detail/typeid.h
similarity index 94%
rename from include/pybind11/typeid.h
rename to include/pybind11/detail/typeid.h
index 9d3ddcd..6f36aab 100644
--- a/include/pybind11/typeid.h
+++ b/include/pybind11/detail/typeid.h
@@ -1,5 +1,5 @@
/*
- pybind11/typeid.h: Compiler-independent access to type identifiers
+ pybind11/detail/typeid.h: Compiler-independent access to type identifiers
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
diff --git a/include/pybind11/options.h b/include/pybind11/options.h
index 531ec8a..cc1e1f6 100644
--- a/include/pybind11/options.h
+++ b/include/pybind11/options.h
@@ -9,7 +9,7 @@
#pragma once
-#include "common.h"
+#include "detail/common.h"
NAMESPACE_BEGIN(PYBIND11_NAMESPACE)
diff --git a/include/pybind11/pybind11.h b/include/pybind11/pybind11.h
index 01c02dc..9bf39d1 100644
--- a/include/pybind11/pybind11.h
+++ b/include/pybind11/pybind11.h
@@ -42,7 +42,7 @@
#include "attr.h"
#include "options.h"
-#include "class_support.h"
+#include "detail/class.h"
NAMESPACE_BEGIN(PYBIND11_NAMESPACE)
diff --git a/include/pybind11/pytypes.h b/include/pybind11/pytypes.h
index ba30e84..9e18a01 100644
--- a/include/pybind11/pytypes.h
+++ b/include/pybind11/pytypes.h
@@ -1,5 +1,5 @@
/*
- pybind11/typeid.h: Convenience wrapper classes for basic Python types
+ pybind11/pytypes.h: Convenience wrapper classes for basic Python types
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
@@ -9,7 +9,7 @@
#pragma once
-#include "common.h"
+#include "detail/common.h"
#include "buffer_info.h"
#include <utility>
#include <type_traits>
diff --git a/include/pybind11/stl_bind.h b/include/pybind11/stl_bind.h
index d9f5b56..31d84b2 100644
--- a/include/pybind11/stl_bind.h
+++ b/include/pybind11/stl_bind.h
@@ -9,7 +9,7 @@
#pragma once
-#include "common.h"
+#include "detail/common.h"
#include "operators.h"
#include <algorithm>
diff --git a/setup.py b/setup.py
index f1eac9c..395f83c 100644
--- a/setup.py
+++ b/setup.py
@@ -12,14 +12,15 @@
headers = []
else:
headers = [
+ 'include/pybind11/detail/class.h',
+ 'include/pybind11/detail/common.h',
+ 'include/pybind11/detail/descr.h',
+ 'include/pybind11/detail/typeid.h'
'include/pybind11/attr.h',
'include/pybind11/buffer_info.h',
'include/pybind11/cast.h',
'include/pybind11/chrono.h',
- 'include/pybind11/class_support.h',
- 'include/pybind11/common.h',
'include/pybind11/complex.h',
- 'include/pybind11/descr.h',
'include/pybind11/eigen.h',
'include/pybind11/embed.h',
'include/pybind11/eval.h',
@@ -31,7 +32,6 @@
'include/pybind11/pytypes.h',
'include/pybind11/stl.h',
'include/pybind11/stl_bind.h',
- 'include/pybind11/typeid.h'
]
setup(