Fluffos & CMake

CMAKE support has been submitted to master branch, Here is how to play with it.

Requirment: ubuntu 16.04 or above

1. sudo pip install --upgrade cmake
2. mkdir build && cd build
3. cmake ..
4. make

And Here’s an sample output

09:12:48 sunyc@wks-home build ±|v2018 ✗|→ make
FluffOS 2019.2018123101 (RelWithDebInfo)
  C: '/usr/bin/cc'
  C++: '/usr/bin/c++'
-- PACKAGE: compress ON
-- PACKAGE: contrib ON
-- PACKAGE: core ON
-- PACKAGE: crypto OFF
-- PACKAGE_DB USE_MYSQL: 1
-- You will link dynamically to the MySQL client library (set with -DMYSQLCLIENT_STATIC_LINKING=<bool>)
-- Searching for dynamic libraries with the base name(s) "mysqlclient_r mysqlclient"
-- mysql_config was found /usr/bin/mysql_config
-- MYSQL_LIB_DIR_LIST =
-- MySQL client environment/cmake variables set that the user can override
--   MYSQL_DIR                   :
--   MYSQL_INCLUDE_DIR           : /usr/include/mysql
--   MYSQL_LIB_DIR               : /usr/lib/x86_64-linux-gnu
--   MYSQL_CONFIG_EXECUTABLE     : /usr/bin/mysql_config
--   MYSQL_CXX_LINKAGE           : 1
--   MYSQL_CFLAGS                : -I/usr/include/mysql
--   MYSQL_CXXFLAGS              : -I/usr/include/mysql
--   MYSQLCLIENT_STATIC_LINKING  :
--   MYSQLCLIENT_NO_THREADS      :
-- MySQL client optional environment/cmake variables set by the user
--   MYSQL_EXTRA_LIBRARIES       :
--   MYSQL_LINK_FLAGS            :
-- MySQL client settings that the user can't override
--   MYSQL_VERSION               : 5.7.24
--   MYSQL_VERSION_ID            : 50724
--   MYSQL_LIB                   : /usr/lib/x86_64-linux-gnu/libmysqlclient.so
--   MYSQL_LIBRARIES             : mysqlclient;pthread;z;m;rt;atomic;dl
-- PACKAGE: db ON
-- PACKAGE: develop ON
-- PACKAGE: math ON
-- PACKAGE: matrix ON
-- PACKAGE: mudlib_stats ON
-- PACKAGE: ops ON
-- PACKAGE: parser ON
-- PACKAGE: pcre ON
-- PACKAGE: sha1 ON
-- PACKAGE: sockets ON
-- PACKAGE: trim ON
-- PACKAGE: uids ON
-- ALL PACKAGES: package_compress;package_contrib;package_core;package_db;package_develop;package_math;package_matrix;package_mudlib_stats;package_ops;package_parser;package_pcre;package_sha1;package_sockets;package_trim;package_uids
-- Found Libevent: /usr/lib/x86_64-linux-gnu/libevent.so (found suitable version "2.1.8-stable", minimum required is "2.0") found components:  libevent
Final Compile Flags:
Configuration for target driver
-- SOURCE_DIR = /mnt/e/src/fluffos/src
-- BINARY_DIR = /mnt/e/src/fluffos/build/src
-- INCLUDE_DIRECTORIES = /mnt/e/src/fluffos/build/src;/mnt/e/src/fluffos/src;/usr/include
-- LINK_LIBRARIES = libdriver;common;/usr/lib/x86_64-linux-gnu/libevent.so
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/e/src/fluffos/build
[  2%] Built target portbind
[  4%] Built target libtelnet
[  7%] Built target make_func
[  8%] Built target build_applies
[ 52%] Built target libdriver
[ 54%] Built target package_uids
[ 55%] Built target package_trim
[ 58%] Built target package_sockets
[ 59%] Built target package_sha1
[ 61%] Built target package_pcre
[ 63%] Built target package_parser
[ 65%] Built target package_ops
[ 67%] Built target package_mudlib_stats
[ 69%] Built target package_matrix
[ 70%] Built target package_math
[ 74%] Built target package_develop
[ 75%] Built target package_db
[ 93%] Built target package_core
[ 95%] Built target package_contrib
[ 96%] Built target package_compress
[ 98%] Built target driver
[100%] Built target preprocessor