Skip to content

Commit

Permalink
[dist] Added distribution helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
cabrust committed Apr 27, 2017
1 parent 905d3f1 commit d0f6f2e
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 4 deletions.
34 changes: 32 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ set(CN24_SHE "${CN24_SOURCE_DIR}/shell")
set(CN24_BSH "${CN24_SOURCE_DIR}/scripts")
set(CN24_KER "${CN24_SOURCE_DIR}/kernels")
set(CN24_LIBS "")
set(CN24_FEATURE_STRING "")

if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "CN24 needs a 64-bit system!")
Expand All @@ -49,6 +50,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
if (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9)
message(STATUS "This is the right compiler, using -std=c++11.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} GCC")
else()
message(FATAL_ERROR "Your version of GCC is too old for CN24!")
endif()
Expand All @@ -58,37 +60,45 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lc++")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} APPLCLANG")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} CLANG")
endif()
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
message(STATUS "This is the right compiler, no switches needed")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} MSVC")
else()
message(WARNING "This compiler is not yet supported by CN24.")
message(WARNING "Let's hope it understands GCC-like arguments...")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} UNSUPCPP")
endif()

# Profiling option
set(CN24_PROFILE OFF CACHE BOOL "Build with profiling flag")
if(CN24_PROFILE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} PROF")
endif()

set(CN24_TENSORDEBUG OFF CACHE BOOL "Debug Tensor offset")
if(CN24_TENSORDEBUG)
add_definitions("-DTENSORDEBUG")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} TDBG")
endif()

set(CN24_LAYERTIME OFF CACHE BOOL "Debug layer time")
if(CN24_LAYERTIME)
add_definitions("-DLAYERTIME")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} LTIME")
endif()

set(CN24_LAYERVIEW OFF CACHE BOOL "Debug layer view")
if(CN24_LAYERVIEW)
add_definitions("-DLAYERVIEW")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} LVIEW")
endif()

# Save the date for versioning
Expand All @@ -105,16 +115,20 @@ add_definitions("-DBUILD_YEAR=\"${CN24_YEAR}\"")
# Tell CN24 the operating system
if(WIN32)
add_definitions("-DBUILD_WIN32")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} WIN32")
else()
if(APPLE)
add_definitions("-DBUILD_OSX")
add_definitions("-DBUILD_POSIX")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} OSX POSIX")
else()
if(UNIX)
add_definitions("-DBUILD_LINUX")
add_definitions("-DBUILD_POSIX")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} LINUX POSIX")
else()
message(STATUS "Unsupported OS, good luck!")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} UNSUPOS")
endif()
endif()
endif()
Expand All @@ -129,6 +143,7 @@ set(CN24_VERBOSE OFF CACHE BOOL "Enable CN24 verbose debug output")
if(CN24_VERBOSE)
add_definitions("-DBUILD_VERBOSE")
message("Verbose output enabled")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} VERB")
endif()

set(CN24_BUILD_SQLITE3 OFF CACHE BOOL "Build CN24 with SQLITE3 logging support")
Expand All @@ -137,6 +152,7 @@ if(CN24_BUILD_SQLITE3)
set(CN24_SOURCES ${CN24_SOURCES} "${CN24_SOURCE_DIR}/src/external/sqlite3/sqlite3.c")
add_definitions("-DBUILD_SQLITE3")
message(STATUS "Using integrated SQLite3")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} SQL3")
endif()

set(CN24_SOURCES ${CN24_SOURCES} "${CN24_SOURCE_DIR}/src/external/cargo/cargo.c")
Expand All @@ -158,6 +174,7 @@ if(CN24_BUILD_PNG)
include_directories(${PNG_INCLUDE_DIR})
set(CN24_LIBS ${CN24_LIBS} ${PNG_LIBRARY})
add_definitions("-DBUILD_PNG")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} LIBPNG")
else()
message(STATUS "libpng not found!")
endif()
Expand All @@ -170,6 +187,7 @@ if(CN24_BUILD_JPG)
include_directories(${JPEG_INCLUDE_DIR})
set(CN24_LIBS ${CN24_LIBS} ${JPEG_LIBRARY})
add_definitions("-DBUILD_JPG")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} LIBJPEG")
else()
message(STATUS "libjpeg not found!")
endif()
Expand All @@ -183,13 +201,15 @@ if(CN24_BUILD_OPENCV)
set(CN24_LIBS ${CN24_LIBS} ${OpenCV_LIBS})
add_definitions("-DBUILD_OPENCV")
message(STATUS "Using OpenCV: ${OpenCV_LIBS}")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} OCV3")
else()
find_package(OpenCV 2.4 COMPONENTS core highgui)
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIR})
set(CN24_LIBS ${CN24_LIBS} ${OpenCV_LIBS})
add_definitions("-DBUILD_OPENCV")
message(STATUS "Using OpenCV: ${OpenCV_LIBS}")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} OCV2")
else()
message(STATUS "OpenCV not found!")
endif()
Expand All @@ -208,6 +228,7 @@ if(CN24_BUILD_ATLASBLAS)
find_package(Threads REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CN24_LIBS ${CN24_LIBS} ${CMAKE_THREAD_LIBS_INIT})
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} ATLAS")
endif()

set(CN24_BUILD_ACMLCBLAS OFF CACHE BOOL "Build CN24 with CBLAS/ACML support")
Expand All @@ -219,6 +240,7 @@ if(CN24_BUILD_ACMLCBLAS)
set(CN24_LIBS ${CN24_LIBS} ${BLAS_LIBRARIES})
add_definitions("-DBUILD_BLAS")
add_definitions("-DBLAS_ACML")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} ACML")
endif()

set(CN24_BUILD_ACCELERATE OFF CACHE BOOL "Build CN24 with Accelerate BLAS support")
Expand All @@ -232,6 +254,7 @@ if(CN24_BUILD_ACCELERATE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flax-vector-conversions")
add_definitions("-DBUILD_BLAS")
add_definitions("-DBLAS_ACCELERATE")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} ACCELERATE")
endif()

set(CN24_BUILD_OPENCL OFF CACHE BOOL "Build CN24 with OpenCL support")
Expand All @@ -246,6 +269,7 @@ if(CN24_BUILD_OPENCL)
set(CN24_LIBS ${CN24_LIBS} ${OPENCL_ICDL})
add_definitions("-DBUILD_OPENCL")
add_definitions("-DBUILD_GPGPU")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} OCL")
else()
message(STATUS "Enable OpenCL with -DCN24_BUILD_OPENCL:BOOL=ON to use your GPU")
endif()
Expand All @@ -260,6 +284,7 @@ if(CN24_BUILD_OPENCL_CLBLAS)
include_directories(${CLBLAS_INCLUDE_DIR})
set(CN24_LIBS ${CN24_LIBS} ${CLBLAS_LIBRARY})
add_definitions("-DBUILD_CLBLAS")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} CLBLAS")
else()
message(STATUS "OpenCL needs to be enabled for clBLAS!")
endif()
Expand All @@ -278,6 +303,7 @@ if(CN24_BUILD_OPENMP)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} OMP")
else()
message(FATAL_ERROR "OpenMP not found!")
endif()
Expand All @@ -300,7 +326,8 @@ if(CN24_BUILD_MKL)
set(CN24_LIBS ${CN24_LIBS} ${MKL_INTELLP64})
find_library(MKL_CORE NAMES mkl_core libmkl_core PATHS ${CN24_MKL_LIBS})
set(CN24_LIBS ${CN24_LIBS} ${MKL_CORE})

set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} MKL")

if(CN24_BUILD_OPENMP)
message(STATUS "Using OpenMP MKL")
find_library(MKL_GNU_THREAD NAMES mkl_gnu_thread libmkl_gnu_thread PATHS ${CN24_MKL_LIBS})
Expand All @@ -314,7 +341,8 @@ if(CN24_BUILD_MKL)
find_package(Threads REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CN24_LIBS ${CN24_LIBS} ${CMAKE_THREAD_LIBS_INIT} m)

set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} THREADS")

add_definitions("-DBUILD_BLAS")
add_definitions("-DBLAS_MKL")
endif()
Expand All @@ -327,11 +355,13 @@ if(CN24_BUILD_LIBARCHIVE)
set(CN24_LIBS ${CN24_LIBS} ${LibArchive_LIBRARIES})
message(STATUS "LibArchive found!")
add_definitions("-DBUILD_LIBARCHIVE")
set(CN24_FEATURE_STRING "${CN24_FEATURE_STRING} ARCH")
else()
message(STATUS "LibArchive not found!")
endif()
endif()

add_definitions("-DBUILD_FEATURES=\"${CN24_FEATURE_STRING}\"")
# Link CN24 to libraries
message(STATUS "Final links: ${CN24_LIBS}")
target_link_libraries(cn24 ${CN24_LIBS})
Expand Down
1 change: 1 addition & 0 deletions RPM_VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4.0.0.alpha
13 changes: 11 additions & 2 deletions src/util/Init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,20 @@ void System::Init(int requested_log_level) {
} else
log_level = requested_log_level;

LOGINFO << "CN24 version " BUILD_VERSIONSTR;
LOGINFO << "CN24 version " BUILD_VERSIONSTR " from " BUILD_DATE;
LOGINFO << "Copyright (C) " BUILD_YEAR " Clemens-Alexander Brust";
LOGINFO << "For licensing information, see the LICENSE"
<< " file included with this project.";


LOGDEBUG << "Build features:" BUILD_FEATURES;
#ifdef BUILD_CLBLAS
{
cl_uint major, minor, patch;
clblasStatus result = clblasGetVersion(&major, &minor, &patch);
LOGDEBUG << "Using clBLAS version " << major << "." << minor << "." << patch;
}
#endif

std::string binary_path;
GetExecutablePath(binary_path);
LOGDEBUG << "Executable path: " << binary_path;
Expand Down

0 comments on commit d0f6f2e

Please sign in to comment.