diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index c8b252d2d..000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,110 +0,0 @@ -# CMake build system for mruby -# License: released under the same license as mruby -# Author: [email protected] -# Author: [email protected] -# -# Usage example: -# 1. Ensure CMake, Bison, and a build toolchain are on `PATH` -# 2. Change to a build directory outside source tree, eg - `build` subdir -# 3. Create build Makefiles or project files. -# `cmake ..` (UNIX-like system) -# `cmake -G "MSYS Makefiles" ..` -# `cmake -G "Visual Studio 10" ..` -# `cmake -G "NMake Makefiles" ..` -# ** to cross-compile: add -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/file -# ** to set install dir: add -DCMAKE_INSTALL_PREFIX=/path/to/installdir -# 4a. Build: `make` (to make noisy, add `VERBOSE=1`) -# 4b. Build and test: `make all test` -# 4c. Build, test, and install: `make all test install` -# 4d. Build, test, and package: `make all test package` - -cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) - -# Default build mode is Release With Debug Info unless specified -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING - "Choose build type: empty Debug Release RelWithDebInfo MinSizeRel" - FORCE) - message(STATUS "Build type not set, defaulting to 'RelWithDebInfo'") -endif() - -project(mruby C) - -# TODO stop polluting source tree with CMakeFiles/ and CMakeCache.txt -# on build location check failure -# Make sure we are not trying to generate in in-tree build unless building -# with an MSVC or Xcode IDE where it's OK. -if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT (MSVC_IDE OR XCODE)) - message(FATAL_ERROR - "\nIn-source builds are not allowed as CMake would overwrite the " - "Makefiles distributed with mruby. Delete any created 'CMakeFiles' " - "subdirectory and 'CMakeCache.txt' file from the current directory, " - "change to the 'build' subdirectory, and re-run CMake from there.") -endif() - -if(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) # don't split absolute link paths - cmake_policy(SET CMP0012 NEW) # recognize number & boolean literals - cmake_policy(SET CMP0015 NEW) # convert relative link paths to absolute -endif(COMMAND cmake_policy) - -# Match original Makefile's default in-tree install. -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE PATH - "Install path prefix prepended to install directories." - FORCE - ) -endif() - -# TODO refactor to use an option when adding shared lib support -set(BUILD_SHARED_LIBS OFF) - -# Version of mruby, useful for versoning .so and .dll files. -# TODO automate by parsing src/version.h -or- extract git info? -set(MRUBY_VERSION 1.0.0dev) -string(REGEX MATCH "^[0-9]+[.][0-9]+" MRUBY_SOVERSION ${MRUBY_VERSION}) -string(REPLACE "." "" MRUBY_DLL_SHORTVER ${MRUBY_SOVERSION}) - -# Search in the `cmake` directory for custom CMake helper modules. -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") -include(IntrospectSystem) - -# Search for C header files in these directories. -include_directories("${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src") - -# TODO re-enable (and implement) if needed -# On some 64-bit platforms, libraries should be installed into `lib64' -# instead of `lib'. Set this to 64 to do that. -#set(LIB_SUFFIX "" CACHE STRING "Suffix for 'lib' directories, e.g. '64'") - -# build the components -add_subdirectory(src) -add_subdirectory(mrblib) -add_subdirectory(tools) -add_subdirectory(test) - -# install the header files -install(FILES include/mruby.h DESTINATION include) -install(FILES include/mrbconf.h DESTINATION include) -install(DIRECTORY include/mruby DESTINATION include FILES_MATCHING PATTERN "*.h") - -# TODO refactor once proper versioning scheme implemented -# archive packaging -set(CPACK_GENERATOR "TGZ;ZIP") -string(TOLOWER ${CMAKE_SYSTEM_NAME} MRUBY_HOST) -if(CMAKE_C_COMPILER_VERSION) - string(REPLACE "." "" MRUBY_GCC_VERSION ${CMAKE_C_COMPILER_VERSION}) -endif() - -# TODO add build info suffix for non-Windows builds? -if(MINGW) - set(MRUBY_BUILD "-mingw${MRUBY_GCC_VERSION}") -elseif(MSVC) - set(MRUBY_BUILD "-msvc${MSVC_VERSION}") -endif() -set(CPACK_PACKAGE_FILE_NAME - "${CMAKE_PROJECT_NAME}-${MRUBY_VERSION}-${MRUBY_HOST}${MRUBY_BUILD}" - ) -include(CPack) - -# vim: ts=2 sts=2 sw=2 et |
