Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add CMake option TESTS #30

Merged
merged 4 commits into from
Mar 14, 2019
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 31 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Select compiler, supports gcc, clang

cmake_minimum_required (VERSION 3.5)

PROJECT(toolkitICL)

option(BUILDREL "Official release build" OFF)

if(DEFINED ENV{AMDPROFILERPATH})
message(STATUS "Found AMD profiling driver")
option(USEAMDP "Use AMD Profiling" ON)
Expand Down Expand Up @@ -30,7 +32,7 @@ if(DEFINED ENV{IPG_Dir})
option(USEIPG "Use Intel Power Gadget" ON)
option(USEIRAPL "Use RAPL" OFF)
ELSE()
option(USEIPG "Use Intel Power Gadget" OF)
option(USEIPG "Use Intel Power Gadget" OFF)
endif()

IF(USEIPG)
Expand All @@ -49,29 +51,51 @@ IF(USENVML)
add_definitions(-DUSENVML)
ENDIF()

# Because Makefiles are shit to read
set(CMAKE_CONFIGURATION_TYPES "Release" CACHE STRING "" FORCE)
ranocha marked this conversation as resolved.
Show resolved Hide resolved

SET(CMAKE_VERBOSE_MAKEFILE "false")
# Includes modules to find OCL
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")

# compiler flags
IF(BUILDREL)
MESSAGE(STATUS "Building release version")
IF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
MESSAGE(STATUS "Microsoft Visual Studio detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " /std=c++11 /O2 /DH5_BUILT_AS_DYNAMIC_LIB")
SET(CMAKE_C_FLAGS " /std=c++11 /O2 /DH5_BUILT_AS_DYNAMIC_LIB")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
MESSAGE(STATUS "GNU Compiler Collection detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -fPIC -Wall -mfpmath=sse -Wcast-align -Wl,-E")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -msse2 -fPIC -Wall -mfpmath=sse -Wcast-align -Wl,-E")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
MESSAGE(STATUS "LLVM Clang detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -fPIC -Wall")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -msse2 -fPIC -Wall")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
MESSAGE(STATUS "Apple Clang detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -march=native -fPIC -Wall")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -msse2 -fPIC -Wall")
ELSE()
MESSAGE(STATUS "Compiler ${CMAKE_CXX_COMPILER_ID} unknown. Simple compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -fstrict-aliasing -fPIC -Wall")
ENDIF()
ELSE(BUILDREL)
IF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
MESSAGE(STATUS "Microsoft Visual Studio detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " /std=c++11 /O2 /DH5_BUILT_AS_DYNAMIC_LIB")
SET(CMAKE_C_FLAGS " /std=c++11 /O2 /DH5_BUILT_AS_DYNAMIC_LIB")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
MESSAGE(STATUS "GNU Compiler Collection detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -march=native -fPIC -Wall -mfpmath=sse -Wcast-align -Wl,-E")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
MESSAGE(STATUS "LLVM Clang detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -march=native -fPIC -Wall")
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
MESSAGE(STATUS "Apple Clang detected. Corresponding compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -funroll-loops -fstrict-aliasing -march=native -fPIC -Wall")
ELSE()
MESSAGE(STATUS "Compiler ${CMAKE_CXX_COMPILER_ID} unknown. Simple compiler flags have been set.")
SET(CMAKE_CXX_FLAGS " -std=c++11 -O2 -fstrict-aliasing -march=native -fPIC -Wall")
ENDIF()
ENDIF(BUILDREL)

# Get cl2.hpp header file
OPTION(GET_CL2HPP "Download cl2.hpp from Khronos" OFF)
Expand Down Expand Up @@ -116,6 +140,7 @@ ENDIF(OpenCL_FOUND)
ADD_SUBDIRECTORY(src)

# tests
OPTION(TESTS "Build unit tests" OFF)
IF(TESTS)
enable_testing()
ADD_SUBDIRECTORY(test)
Expand Down