Skip to content
Snippets Groups Projects
Commit 801d48d4 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Refactor cmake to work from repository root

parent cfb867f4
No related branches found
No related tags found
No related merge requests found
*/build
*/node_modules
*/include/ftl/config.h
**/*.blend1
fabric/
fabric-js/
build/
lab-designs/viewer
cmake_minimum_required (VERSION 3.1.0)
include (CheckIncludeFile)
include (CheckIncludeFileCXX)
include (CheckFunctionExists)
include(CheckLanguage)
project (ftl.utu.fi)
include(CTest)
enable_testing()
set(THREADS_PREFER_PTHREAD_FLAG ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package( glog REQUIRED )
find_package( OpenCV REQUIRED )
find_package( Threads REQUIRED )
find_package( LibSGM )
check_language(CUDA)
if (CUDA_FOUND)
enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "")
set(CMAKE_CUDA_FLAGS_DEBUG "-g -DDEBUG -D_DEBUG -Wall")
set(CMAKE_CUDA_FLAGS_RELEASE "")
add_definitions(-DHAVE_CUDA)
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
endif (CUDA_FOUND)
set(ftl_VERSION_MAJOR "1")
set(ftl_VERSION_MINOR "0")
set(ftl_VERSION_PATCH "0")
set(FTL_VERSION "\"${ftl_VERSION_MAJOR}.${ftl_VERSION_MINOR}.${ftl_VERSION_PATCH}\"")
if (WIN32)
file(TO_CMAKE_PATH "$ENV{USERPROFILE}" ENV_USERPROFILE)
set(FTL_CONFIG_ROOT "\"${ENV_USERPROFILE}/AppData/ftl\"")
message(STATUS "Config root is ${FTL_CONFIG_ROOT}")
set(FTL_CACHE_ROOT "\"$ENV{USERPROFILE}/AppData/ftl\"")
set(FTL_DATA_ROOT "\"$ENV{USERPROFILE}/AppData/ftl\"")
add_definitions(-DWIN32)
set(CMAKE_CXX_FLAGS "/std:c++17")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "/O2")
endif (WIN32)
if (UNIX)
add_definitions(-DUNIX)
set(FTL_CONFIG_ROOT "\"$ENV{HOME}/.config/ftl\"")
message(STATUS "Config root is ${FTL_CONFIG_ROOT}")
set(FTL_CACHE_ROOT "\"$ENV{HOME}/.cache/ftl\"")
set(FTL_DATA_ROOT "\"$ENV{HOME}/.local/share/ftl\"")
set(CMAKE_CXX_FLAGS "-std=c++17")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -pg -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -msse3 -mfpmath=sse")
endif (UNIX)
SET(CMAKE_USE_RELATIVE_PATHS ON)
add_subdirectory(net/cpp)
add_subdirectory(cv-node)
......@@ -2,12 +2,31 @@
This monorepo contains all elements of the FTL software system.
* p2p-remote-array : Access 2D memory arrays on other machines in P2P group
* fabric : C++ library implementing the neural fabric
* fabric-js : Node.js bindings for C++ fabric
* fabric-js-modules : Additional fabric-js based native and non-native components
* peer-node : P2P node.js application providing a web-service interface
* front-end : Client side FTL code
* net : A p2p messaging library for C++ and JavaScript
* cv-node : Stereo vision node in p2p network
* renderer : Produce video or live image feeds from scene representation
* front-end : Client side FTL code, both web and native
* web-service : A web backend service provider acting as a form of proxy
* www : FTL Website
The architecture relies on NodeJS with C++ native addons for processing.
The architecture is a mix of C++ and NodeJS largely communicating over a p2p
network protocol.
## Build
Use the following commands in the root repository directory to build:
```bash
mkdir build
cd build
cmake ..
make
```
In Windows have Visual Studio installed and use the cmake graphical interface
to configure the project.
You will need to have OpenCV and glog installed. CUDA and LibSGM are optional
but recommended also. OpenCV should have cuda stereo modules compiled, along
with the viz module if local point cloud display is required. These are contrib
modules.
File moved
File moved
cmake_minimum_required (VERSION 3.1.0)
include (CheckIncludeFile)
include (CheckIncludeFileCXX)
include (CheckFunctionExists)
include(CheckLanguage)
project (cv-node)
include(CTest)
enable_testing()
set(THREADS_PREFER_PTHREAD_FLAG ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package( glog REQUIRED )
#if (WIN32)
#include_directories(${glog_DIR})
#endif (WIN32)
find_package( OpenCV REQUIRED )
find_package( Threads REQUIRED )
find_package( LibSGM )
#find_package( CUDA )
check_language(CUDA)
if (CUDA_FOUND)
enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "")
set(CMAKE_CUDA_FLAGS_DEBUG "-g -DDEBUG -D_DEBUG -Wall")
set(CMAKE_CUDA_FLAGS_RELEASE "")
add_definitions(-DHAVE_CUDA)
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
endif (CUDA_FOUND)
# Need to include staged files and libs
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_BINARY_DIR})
include_directories(${PROJECT_SOURCE_DIR}/cv-node/include)
#include_directories(${PROJECT_BINARY_DIR})
# Check for optional opencv components
set(CMAKE_REQUIRED_INCLUDES ${OpenCV_INCLUDE_DIRS})
check_include_file_cxx("opencv2/viz.hpp" HAVE_VIZ)
check_include_file_cxx("opencv2/cudastereo.hpp" HAVE_OPENCVCUDA)
set(ftl_VERSION_MAJOR "1")
set(ftl_VERSION_MINOR "0")
set(ftl_VERSION_PATCH "0")
set(FTL_VERSION "${ftl_VERSION_MAJOR}.${ftl_VERSION_MINOR}.${ftl_VERSION_PATCH}")
add_definitions(-DFTL_VERSION=${FTL_VERSION})
if (WIN32)
file(TO_CMAKE_PATH "$ENV{USERPROFILE}" ENV_USERPROFILE)
set(FTL_CONFIG_ROOT "\"${ENV_USERPROFILE}/AppData/ftl\"")
message(STATUS "Config root is ${FTL_CONFIG_ROOT}")
set(FTL_CACHE_ROOT "$ENV{USERPROFILE}/AppData/ftl")
set(FTL_DATA_ROOT "$ENV{USERPROFILE}/AppData/ftl")
add_definitions(-DWIN32)
set(CMAKE_CXX_FLAGS "/std:c++17")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "/O2")
endif (WIN32)
if (UNIX)
add_definitions(-DUNIX)
set(FTL_CONFIG_ROOT "\"$ENV{HOME}/.config/ftl\"")
message(STATUS "Config root is ${FTL_CONFIG_ROOT}")
set(FTL_CACHE_ROOT "$ENV{HOME}/.cache/ftl")
set(FTL_DATA_ROOT "$ENV{HOME}/.local/share/ftl")
set(CMAKE_CXX_FLAGS "-std=c++17")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -pg -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -msse3 -mfpmath=sse")
endif (UNIX)
#add_definitions("-DFTL_CONFIG_ROOT=${FTL_CONFIG_ROOT}")
#add_definitions("-DFTL_CACHE_ROOT=${FTL_CACHE_ROOT}")
#add_definitions("-DFTL_DATA_ROOT=${FTL_DATA_ROOT}")
configure_file(${CMAKE_SOURCE_DIR}/include/ftl/config.h.in
${CMAKE_SOURCE_DIR}/include/ftl/config.h
configure_file(${CMAKE_SOURCE_DIR}/cv-node/include/ftl/config.h.in
${CMAKE_SOURCE_DIR}/cv-node/include/ftl/config.h
)
SET(CMAKE_USE_RELATIVE_PATHS ON)
set(CVNODESRC
src/main.cpp
src/calibrate.cpp
......@@ -113,6 +43,7 @@ if (CUDA_FOUND)
endif (CUDA_FOUND)
add_executable(cv-node ${CVNODESRC})
add_dependencies(cv-node net)
if (CUDA_FOUND)
set_property(TARGET Threads::Threads
......
cmake_minimum_required (VERSION 2.8.11)
include (CheckIncludeFile)
include (CheckFunctionExists)
project (ftlnet)
include(CTest)
enable_testing()
#find_package(PkgConfig)
#pkg_check_modules(GTKMM gtkmm-3.0)
# Need to include staged files and libs
include_directories(${PROJECT_SOURCE_DIR}/includes)
include_directories(${PROJECT_BINARY_DIR})
set(ftl_VERSION_MAJOR "1")
set(ftl_VERSION_MINOR "0")
set(ftl_VERSION_PATCH "0")
set(CMAKE_CXX_FLAGS "-pthread -fopenmp -std=c++17 -Wall -Wno-deprecated -Werror -Wno-psabi")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -pg -Wall -Werror")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
include_directories(${PROJECT_SOURCE_DIR}/net/cpp/include)
#include_directories(${PROJECT_BINARY_DIR})
SET(CMAKE_USE_RELATIVE_PATHS ON)
set(FTLSOURCE
set(NETSOURCE
src/net.cpp
src/listener.cpp
src/socket.cpp
......@@ -38,8 +17,7 @@ if(NOT HAVE_URI_H)
endif()
check_function_exists(uriParseSingleUriA HAVE_URIPARSESINGLE)
add_library(ftlnet ${FTLSOURCE})
target_include_directories(ftlnet PUBLIC ${PROJECT_SOURCE_DIR}/include)
target_link_libraries(ftlnet pthread)
add_library(net ${NETSOURCE})
target_link_libraries(net pthread)
ADD_SUBDIRECTORY(test)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment