support slightly more modern cmake
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..24b0b1d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/build* # cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index be131b1..ee5e7bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,46 @@
-cmake_minimum_required(VERSION 2.6)
-project(xbyak)
+cmake_minimum_required(VERSION 2.6...3.0.2)
+
+project(xbyak CXX)
file(GLOB headers xbyak/*.h)
-install(FILES ${headers} DESTINATION include/xbyak)
+if (DEFINED CMAKE_VERSION AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.0.2)
+ include(GNUInstallDirs)
+ add_library(${PROJECT_NAME} INTERFACE ${headers})
+ add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
+
+ target_include_directories(
+ ${PROJECT_NAME} INTERFACE
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xbyak>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+ )
+
+ install(
+ TARGETS ${PROJECT_NAME}
+ EXPORT ${PROJECT_NAME}-targets
+ )
+
+ configure_file(
+ cmake/config.cmake.in
+ ${PROJECT_NAME}Config.cmake
+ @ONLY
+ )
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+ )
+
+ install(
+ EXPORT ${PROJECT_NAME}-targets
+ NAMESPACE ${PROJECT_NAME}::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+ )
+elseif(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
+ set(CMAKE_INSTALL_INCLUDEDIR "include")
+endif()
+
+install(
+ FILES ${headers}
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/xbyak
+)
diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in
new file mode 100644
index 0000000..f40ebfa
--- /dev/null
+++ b/cmake/config.cmake.in
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake")