Skip to content
Snippets Groups Projects
CMakeLists.txt 2.29 KiB
Newer Older
cmake_minimum_required(VERSION 3.0)
project(NeuronLib)
set (NeuronLib_VERSION_MAJOR 0)
set (NeuronLib_VERSION_MINOR 1)

message ("Before enable language")
enable_language(Fortran)
Martin Mrovec's avatar
Martin Mrovec committed
if (WIN32)
	message ("cmake for " ${CMAKE_Fortran_COMPILER})
Martin Mrovec's avatar
Martin Mrovec committed
	set (CMAKE_FORTRAN_COMPILER ${CMAKE_Fortran_COMPILER})
	project(4Neuro FORTRAN)
else ()
	project(4Neuro)
Martin Mrovec's avatar
Martin Mrovec committed
endif ()

#-------------------------------#
# Default installation location #
#-------------------------------#
# Linux: /usr/local
Martin Mrovec's avatar
Martin Mrovec committed
# Windows: c:/Program Files

#------------#
# Build type #
#------------#
# Default: Release
# Others: None, Debug
if (NOT CMAKE_BUILD_TYPE)
  set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
      "Choose the type of build, options are: None Debug Release."
      FORCE)
endif (NOT CMAKE_BUILD_TYPE)

#--------------------------------#
# Setting C++ compiler flags #
#--------------------------------#

set(standard "-std=c++17")

#--------------------#
# Automatic settings #
#--------------------#
Martin Mrovec's avatar
Martin Mrovec committed
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)

# Processing user variables
Martin Mrovec's avatar
Martin Mrovec committed
if (WITH_TIME_PROFILING)
    add_definitions(-DTIME_PROFILING)
endif()

# C & CXX compilers
if (WIN32)
  set (CMAKE_C_COMPILER gcc)
  set (CMAKE_CXX_COMPILER g++)
endif()

# Write compiler variables to the file - to pass them to test script
file(WRITE compilers.env "export FC=${CMAKE_Fortran_COMPILER}\n")
file(APPEND compilers.env "export CXX=${CMAKE_CXX_COMPILER}\n")
file(APPEND compilers.env "export CC=${CMAKE_C_COMPILER}\n")
# Fortran compiler detection
Martin Mrovec's avatar
Martin Mrovec committed
message ("Fortran compiler name: " ${Fortran_COMPILER_NAME})
message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER})
message ("Fortran compiler: " ${Fortran_COMPILER_NAME})
message ("Build type:" ${CMAKE_BUILD_TYPE})

#----------------#
# User variables #
#----------------#
set(SRC_DIR src)
set(BUILD_DIR build)
set(LIB_DIR lib)

#--------------------#
# Building libraries #
#--------------------#
#link_directories("${BUILD_DIR}/${LIB_DIR}")
include_directories("${BUILD_DIR}/${LIB_DIR}")
add_subdirectory("${SRC_DIR}" "${LIB_DIR}")

message ("Current directory:" ${PWD})
message ("SRC_DIR: " ${SRC_DIR})
message ("BUILD_DIR:" ${BUILD_DIR})
message ("LIB_DIR: " ${LIB_DIR})

	message ("Windows")
else ()