Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/torch7.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRonan Collobert <ronan@collobert.com>2014-02-14 14:17:43 +0400
committerRonan Collobert <ronan@collobert.com>2014-02-14 14:27:11 +0400
commit66a5927b7cf584bc11bf3f42c12c9ad97cb26413 (patch)
treeafd3ab067e598fc4f0f49704aad4c0f81d538ad6 /cmake
parentfa0e47d77dbb1858441c2e339c41fbd00b8c6569 (diff)
added/modified cmake files to make torch7 a standalone package
Diffstat (limited to 'cmake')
-rw-r--r--cmake/TorchConfig.cmake.in34
-rw-r--r--cmake/TorchExports.cmake14
-rw-r--r--cmake/TorchPackage.cmake35
-rw-r--r--cmake/TorchPaths.cmake32
-rw-r--r--cmake/TorchPathsInit.cmake47
-rw-r--r--cmake/TorchWrap.cmake11
-rw-r--r--cmake/TorchWrap.cmake.in11
7 files changed, 184 insertions, 0 deletions
diff --git a/cmake/TorchConfig.cmake.in b/cmake/TorchConfig.cmake.in
new file mode 100644
index 0000000..246629d
--- /dev/null
+++ b/cmake/TorchConfig.cmake.in
@@ -0,0 +1,34 @@
+# This (ugly) setup assumes:
+# CMAKE_PREFIX_PATH = LUA_BINDIR
+# CMAKE_INSTALL_PREFIX = PREFIX
+
+# Define Torch basic subpaths
+SET(Torch_INSTALL_PREFIX "@Torch_INSTALL_PREFIX@")
+
+SET(Torch_INSTALL_BIN_SUBDIR "@Torch_INSTALL_BIN_SUBDIR@")
+SET(Torch_INSTALL_MAN_SUBDIR "@Torch_INSTALL_MAN_SUBDIR@")
+SET(Torch_INSTALL_LIB_SUBDIR "@Torch_INSTALL_LIB_SUBDIR@")
+SET(Torch_INSTALL_SHARE_SUBDIR "@Torch_INSTALL_SHARE_SUBDIR@")
+SET(Torch_INSTALL_INCLUDE_SUBDIR "@Torch_INSTALL_INCLUDE_SUBDIR@")
+SET(Torch_INSTALL_CMAKE_SUBDIR "@Torch_INSTALL_CMAKE_SUBDIR@")
+SET(Torch_INSTALL_LUA_PATH_SUBDIR "@Torch_INSTALL_LUA_PATH_SUBDIR@")
+SET(Torch_INSTALL_LUA_CPATH_SUBDIR "@Torch_INSTALL_LUA_CPATH_SUBDIR@")
+SET(Torch_INSTALL_CMAKE_RIDBUS "@Torch_INSTALL_CMAKE_RIDBUS@")
+
+FILE(RELATIVE_PATH Torch_INSTALL_LUA_PATH_SUBDIR "${Torch_INSTALL_PREFIX}" "${CMAKE_INSTALL_PREFIX}/lua")
+FILE(RELATIVE_PATH Torch_INSTALL_LUA_CPATH_SUBDIR "${Torch_INSTALL_PREFIX}" "${CMAKE_INSTALL_PREFIX}/lib")
+
+SET(CMAKE_MODULE_PATH "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_CMAKE_SUBDIR}" "${CMAKE_MODULE_PATH}")
+SET(CMAKE_INSTALL_PREFIX "${Torch_INSTALL_PREFIX}") # override
+
+INCLUDE(TorchPathsInit)
+INCLUDE(TorchPackage)
+INCLUDE(TorchWrap)
+
+# Define Torch basic targets
+INCLUDE(TorchExports)
+
+INCLUDE_DIRECTORIES("${Torch_INSTALL_INCLUDE}")
+INCLUDE_DIRECTORIES("${Torch_INSTALL_INCLUDE}/TH")
+
+MESSAGE(STATUS "Found Torch7 in ${Torch_INSTALL_PREFIX}")
diff --git a/cmake/TorchExports.cmake b/cmake/TorchExports.cmake
new file mode 100644
index 0000000..7a45319
--- /dev/null
+++ b/cmake/TorchExports.cmake
@@ -0,0 +1,14 @@
+INSTALL(EXPORT torch-exports
+ DESTINATION "${Torch_INSTALL_CMAKE_SUBDIR}"
+ FILE "TorchExports.cmake")
+
+CONFIGURE_FILE("cmake/TorchConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/TorchConfig.cmake" @ONLY)
+CONFIGURE_FILE("cmake/TorchWrap.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/TorchWrap.cmake" @ONLY)
+
+INSTALL(
+ FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/TorchConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/TorchWrap.cmake"
+ "cmake/TorchPathsInit.cmake"
+ "cmake/TorchPackage.cmake"
+ DESTINATION "${Torch_INSTALL_CMAKE_SUBDIR}")
diff --git a/cmake/TorchPackage.cmake b/cmake/TorchPackage.cmake
new file mode 100644
index 0000000..9ee30c7
--- /dev/null
+++ b/cmake/TorchPackage.cmake
@@ -0,0 +1,35 @@
+# -*- cmake -*-
+
+MACRO(ADD_TORCH_PACKAGE package src luasrc)
+
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+
+ ### C/C++ sources
+ IF(src)
+
+ ADD_LIBRARY(${package} MODULE ${src})
+
+ ### Torch packages supposes libraries prefix is "lib"
+ SET_TARGET_PROPERTIES(${package} PROPERTIES
+ PREFIX "lib"
+ IMPORT_PREFIX "lib"
+ INSTALL_NAME_DIR "@executable_path/${Torch_INSTALL_BIN2CPATH}")
+
+ IF(APPLE)
+ SET_TARGET_PROPERTIES(${package} PROPERTIES
+ LINK_FLAGS "-undefined dynamic_lookup")
+ ENDIF()
+
+ INSTALL(TARGETS ${package}
+ RUNTIME DESTINATION ${Torch_INSTALL_LUA_CPATH_SUBDIR}
+ LIBRARY DESTINATION ${Torch_INSTALL_LUA_CPATH_SUBDIR})
+
+ ENDIF(src)
+
+ ### lua sources
+ IF(luasrc)
+ INSTALL(FILES ${luasrc}
+ DESTINATION ${Torch_INSTALL_LUA_PATH_SUBDIR}/${package})
+ ENDIF(luasrc)
+
+ENDMACRO(ADD_TORCH_PACKAGE)
diff --git a/cmake/TorchPaths.cmake b/cmake/TorchPaths.cmake
new file mode 100644
index 0000000..b0417aa
--- /dev/null
+++ b/cmake/TorchPaths.cmake
@@ -0,0 +1,32 @@
+# workaround another annoying cmake bug
+# http://public.kitware.com/Bug/view.php?id=14462
+# https://awesome.naquadah.org/bugs/index.php?do=details&task_id=869
+MACRO(NORMALIZE_PATH _path_)
+ get_filename_component(${_path_}_abs "${${_path_}}" ABSOLUTE)
+ SET(${_path_} "${${_path_}_abs}")
+ENDMACRO()
+
+NORMALIZE_PATH(LUA_BINDIR)
+NORMALIZE_PATH(LUA_LIBDIR)
+NORMALIZE_PATH(LUA_INCDIR)
+NORMALIZE_PATH(LUADIR)
+NORMALIZE_PATH(LIBDIR)
+
+GET_FILENAME_COMPONENT(CMAKE_INSTALL_PREFIX "${LUA_BINDIR}" PATH)
+
+SET(Torch_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
+FILE(RELATIVE_PATH Torch_INSTALL_BIN_SUBDIR "${CMAKE_INSTALL_PREFIX}" "${LUA_BINDIR}")
+FILE(RELATIVE_PATH Torch_INSTALL_LIB_SUBDIR "${CMAKE_INSTALL_PREFIX}" "${LUA_LIBDIR}")
+FILE(RELATIVE_PATH Torch_INSTALL_INCLUDE_SUBDIR "${CMAKE_INSTALL_PREFIX}" "${LUA_INCDIR}")
+
+SET(Torch_INSTALL_MAN_SUBDIR "share/man" CACHE PATH
+ "Install dir for man pages (relative to Torch_INSTALL_PREFIX)")
+
+SET(Torch_INSTALL_SHARE_SUBDIR "share" CACHE PATH
+ "Install dir for data (relative to Torch_INSTALL_PREFIX)")
+
+SET(Torch_INSTALL_CMAKE_SUBDIR "share/cmake/torch" CACHE PATH
+ "Install dir for .cmake files (relative to Torch_INSTALL_PREFIX)")
+
+FILE(RELATIVE_PATH Torch_INSTALL_LUA_PATH_SUBDIR "${CMAKE_INSTALL_PREFIX}" "${LUADIR}")
+FILE(RELATIVE_PATH Torch_INSTALL_LUA_CPATH_SUBDIR "${CMAKE_INSTALL_PREFIX}" "${LIBDIR}")
diff --git a/cmake/TorchPathsInit.cmake b/cmake/TorchPathsInit.cmake
new file mode 100644
index 0000000..35f13c1
--- /dev/null
+++ b/cmake/TorchPathsInit.cmake
@@ -0,0 +1,47 @@
+SET(Torch_INSTALL_BIN "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_BIN_SUBDIR}")
+SET(Torch_INSTALL_MAN "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_MAN_SUBDIR}")
+SET(Torch_INSTALL_LIB "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_LIB_SUBDIR}")
+SET(Torch_INSTALL_SHARE "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_SHARE_SUBDIR}")
+SET(Torch_INSTALL_INCLUDE "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_INCLUDE_SUBDIR}")
+#SET(Torch_INSTALL_DOK "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_DOK_SUBDIR}")
+#SET(Torch_INSTALL_HTML "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_HTML_SUBDIR}")
+SET(Torch_INSTALL_CMAKE "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_CMAKE_SUBDIR}")
+SET(Torch_INSTALL_LUA_PATH "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_LUA_PATH_SUBDIR}")
+#SET(Torch_INSTALL_LUA_PKG_PATH "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_LUA_PKG_PATH_SUBDIR}")
+SET(Torch_INSTALL_LUA_CPATH "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_LUA_CPATH_SUBDIR}")
+#SET(Torch_INSTALL_LUAROCKS_SYSCONF "${Torch_INSTALL_PREFIX}/${Torch_INSTALL_LUAROCKS_SYSCONF_SUBDIR}")
+
+# reverse relative path to prefix (ridbus is the palindrom of subdir)
+FILE(RELATIVE_PATH Torch_INSTALL_BIN_RIDBUS "${Torch_INSTALL_BIN}" "${Torch_INSTALL_PREFIX}/.")
+FILE(RELATIVE_PATH Torch_INSTALL_CMAKE_RIDBUS "${Torch_INSTALL_CMAKE}" "${Torch_INSTALL_PREFIX}/.")
+GET_FILENAME_COMPONENT(Torch_INSTALL_BIN_RIDBUS "${Torch_INSTALL_BIN_RIDBUS}" PATH)
+GET_FILENAME_COMPONENT(Torch_INSTALL_CMAKE_RIDBUS "${Torch_INSTALL_CMAKE_RIDBUS}" PATH)
+
+IF(UNIX)
+ OPTION(WITH_RPATH "Build libraries with executable rpaths" ON)
+
+ IF(WITH_RPATH)
+ SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+ SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+ FILE(RELATIVE_PATH Torch_INSTALL_BIN2LIB
+ "${Torch_INSTALL_BIN}" "${Torch_INSTALL_LIB}")
+ FILE(RELATIVE_PATH Torch_INSTALL_BIN2CPATH
+ "${Torch_INSTALL_BIN}" "${Torch_INSTALL_LUA_CPATH}")
+ IF(NOT APPLE)
+ OPTION(WITH_DYNAMIC_RPATH
+ "Build libraries with executable relative rpaths (\$ORIGIN)" ON )
+ ENDIF(NOT APPLE)
+ IF (WITH_DYNAMIC_RPATH OR APPLE)
+ SET(CMAKE_INSTALL_RPATH "\$ORIGIN/${Torch_INSTALL_BIN2LIB}")
+ ELSE (WITH_DYNAMIC_RPATH OR APPLE)
+ SET(CMAKE_INSTALL_RPATH "${Torch_INSTALL_LIB}")
+ ENDIF (WITH_DYNAMIC_RPATH OR APPLE)
+ SET(CMAKE_INSTALL_NAME_DIR "@executable_path/${Torch_INSTALL_BIN2LIB}")
+ ENDIF(WITH_RPATH)
+ENDIF(UNIX)
+
+IF (WIN32)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
+ENDIF (WIN32)
diff --git a/cmake/TorchWrap.cmake b/cmake/TorchWrap.cmake
new file mode 100644
index 0000000..4fd6978
--- /dev/null
+++ b/cmake/TorchWrap.cmake
@@ -0,0 +1,11 @@
+MACRO(ADD_TORCH_WRAP target luafile)
+ INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
+ GET_FILENAME_COMPONENT(_file_ "${luafile}" NAME_WE)
+ SET(cfile "${_file_}.c")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${cfile}"
+ COMMAND ${LUA} ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${luafile}" "${CMAKE_CURRENT_BINARY_DIR}/${cfile}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS "${luafile}")
+ ADD_CUSTOM_TARGET(${target} DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${cfile}")
+ENDMACRO(ADD_TORCH_WRAP)
diff --git a/cmake/TorchWrap.cmake.in b/cmake/TorchWrap.cmake.in
new file mode 100644
index 0000000..12d7eb8
--- /dev/null
+++ b/cmake/TorchWrap.cmake.in
@@ -0,0 +1,11 @@
+MACRO(ADD_TORCH_WRAP target luafile)
+ INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
+ GET_FILENAME_COMPONENT(_file_ "${luafile}" NAME_WE)
+ SET(cfile "${_file_}.c")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${cfile}"
+ COMMAND @LUA@ ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${luafile}" "${CMAKE_CURRENT_BINARY_DIR}/${cfile}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS "${luafile}")
+ ADD_CUSTOM_TARGET(${target} DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${cfile}")
+ENDMACRO(ADD_TORCH_WRAP)