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

github.com/torch/trepl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarchenroot <archenroot@gmail.com>2017-01-15 09:50:26 +0300
committerSoumith Chintala <soumith@gmail.com>2017-01-15 09:50:26 +0300
commit818868e23521ec1eb6b4bea32714fe39024e01db (patch)
tree5b068c9102f08612c30505c9d0103537fd009c8e
parentf8831bee21a9d6a41e47ef8626a3bef9ca2d66e5 (diff)
Adding support for CMAKE (#62)
* Adding support for CMAKE.
-rw-r--r--CMakeLists.txt68
-rw-r--r--cmake/FindReadline.cmake80
2 files changed, 148 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..07239df
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,68 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
+CMAKE_POLICY(VERSION 2.8)
+
+FIND_LIBRARY(Readline REQUIRED)
+FIND_PACKAGE(Torch REQUIRED)
+
+INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
+INCLUDE_DIRECTORIES("${LUA_INCDIR}")
+LINK_DIRECTORIES("${LUA_LIBDIR}")
+LINK_DIRECTORIES("${LIBDIR}")
+
+# TODO
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckLibraryExists)
+
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+
+# Check system packages to be installed
+IF (UNIX OR NOT WIN32)
+ CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
+ENDIF (UNIX OR NOT WIN32)
+
+CONFIGURE_FILE("utils.c" "${CMAKE_CURRENT_SOURCE_DIR}/treplutils.c")
+# C source files
+SET(src
+ "${CMAKE_CURRENT_SOURCE_DIR}/readline.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/treplutils.c" )
+
+# LUA source files
+SET(luasrc
+ "${CMAKE_CURRENT_SOURCE_DIR}/init.lua"
+ "${CMAKE_CURRENT_SOURCE_DIR}/colorize.lua"
+ "${CMAKE_CURRENT_SOURCE_DIR}/colors.lua" )
+
+# Th executable script -> CLI for Torch
+SET(scriptsrc
+ "${CMAKE_CURRENT_SOURCE_DIR}/th")
+
+# When using MSVC
+IF(MSVC)
+ # we want to respect the standard, and we are bored of those **** .
+ ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE=1)
+ENDIF(MSVC)
+
+ADD_LIBRARY("treplutils" SHARED ${src})
+
+# OUTPUT_NAME "treplutils"
+# We would like to rename util.c to treputils.so after compilation and without prefix lib
+SET_TARGET_PROPERTIES("treplutils" PROPERTIES
+ PREFIX ""
+ IMPORT_PREFIX "lib" )
+
+# Apple related stuff
+IF(APPLE)
+ SET_TARGET_PROPERTIES("treplutils" PROPERTIES
+ LINK_FLAGS "-undefined dynamic_lookup")
+ENDIF()
+
+# Install LUA source files
+INSTALL(FILES ${luasrc} DESTINATION ${LUADIR}/trepl)
+# Install compiled C libraries
+INSTALL(TARGETS treplutils LIBRARY DESTINATION ${LUA_LIBDIR} )
+IF(LUALIB)
+ TARGET_LINK_LIBRARIES(treplutils ${LUALIB} readline)
+ENDIF()
+# Install cli script
+INSTALL(PROGRAMS ${scriptsrc} DESTINATION ${LUA_BINDIR}) \ No newline at end of file
diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake
new file mode 100644
index 0000000..95bb942
--- /dev/null
+++ b/cmake/FindReadline.cmake
@@ -0,0 +1,80 @@
+# - Find the readline library
+# This module defines
+# READLINE_INCLUDE_DIR, path to readline/readline.h, etc.
+# READLINE_LIBRARIES, the libraries required to use READLINE.
+# READLINE_FOUND, If false, do not try to use READLINE.
+# also defined, but not for general use are
+# READLINE_readline_LIBRARY, where to find the READLINE library.
+# READLINE_ncurses_LIBRARY, where to find the ncurses library [might not be defined]
+
+# Apple readline does not support readline hooks
+# So we look for another one by default
+IF(APPLE)
+ FIND_PATH(READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS
+ /sw/include
+ /opt/local/include
+ /opt/include
+ /usr/local/include
+ /usr/include/
+ NO_DEFAULT_PATH
+ )
+ENDIF(APPLE)
+FIND_PATH(READLINE_INCLUDE_DIR NAMES readline/readline.h)
+
+
+# Apple readline does not support readline hooks
+# So we look for another one by default
+IF(APPLE)
+ FIND_LIBRARY(READLINE_readline_LIBRARY NAMES readline PATHS
+ /sw/lib
+ /opt/local/lib
+ /opt/lib
+ /usr/local/lib
+ /usr/lib
+ NO_DEFAULT_PATH
+ )
+ENDIF(APPLE)
+FIND_LIBRARY(READLINE_readline_LIBRARY NAMES readline)
+
+# Sometimes readline really needs ncurses
+IF(APPLE)
+ FIND_LIBRARY(READLINE_ncurses_LIBRARY NAMES ncurses PATHS
+ /sw/lib
+ /opt/local/lib
+ /opt/lib
+ /usr/local/lib
+ /usr/lib
+ NO_DEFAULT_PATH
+ )
+ENDIF(APPLE)
+FIND_LIBRARY(READLINE_ncurses_LIBRARY NAMES ncurses)
+
+MARK_AS_ADVANCED(
+ READLINE_INCLUDE_DIR
+ READLINE_readline_LIBRARY
+ READLINE_ncurses_LIBRARY
+ )
+
+SET( READLINE_FOUND "NO" )
+IF(READLINE_INCLUDE_DIR)
+ IF(READLINE_readline_LIBRARY)
+ SET( READLINE_FOUND "YES" )
+ SET( READLINE_LIBRARIES
+ ${READLINE_readline_LIBRARY}
+ )
+
+ # some readline libraries depend on ncurses
+ IF(READLINE_ncurses_LIBRARY)
+ SET(READLINE_LIBRARIES ${READLINE_LIBRARIES} ${READLINE_ncurses_LIBRARY})
+ ENDIF(READLINE_ncurses_LIBRARY)
+
+ ENDIF(READLINE_readline_LIBRARY)
+ENDIF(READLINE_INCLUDE_DIR)
+
+IF(READLINE_FOUND)
+ MESSAGE(STATUS "Found readline library")
+ELSE(READLINE_FOUND)
+ IF(READLINE_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find readline -- please give some paths to CMake")
+ ENDIF(READLINE_FIND_REQUIRED)
+ENDIF(READLINE_FOUND)