Commit cd64c518 authored by Davis King's avatar Davis King

Made cmake script work a little better in projects that involve a lot of

subdirectories and create a lot of executables.
parent 1f7bec6e
# This is a CMake file meant to be included via include()
cmake_minimum_required(VERSION 2.6.4) cmake_minimum_required(VERSION 2.6.4)
...@@ -7,21 +8,19 @@ if (POLICY CMP0054) ...@@ -7,21 +8,19 @@ if (POLICY CMP0054)
cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0054 NEW)
endif() endif()
# Don't add dlib if it's already been added to the cmake project
if (NOT TARGET dlib)
# Determine the path to dlib. # Determine the path to dlib.
string(REGEX REPLACE "cmake$" "" dlib_path ${CMAKE_CURRENT_LIST_FILE}) string(REGEX REPLACE "cmake$" "" dlib_path ${CMAKE_CURRENT_LIST_FILE})
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
# By default, g++ won't warn or error if you forget to return a value in a # By default, g++ won't warn or error if you forget to return a value in a
# function which requires you to do so. This option makes it give a warning # function which requires you to do so. This option makes it give a warning
# for doing this. # for doing this.
add_definitions("-Wreturn-type") add_definitions("-Wreturn-type")
endif() endif()
# Setup some options to allow a user to enable SSE and AVX instruction use. # Setup some options to allow a user to enable SSE and AVX instruction use.
if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
option(USE_SSE2_INSTRUCTIONS "Compile your program with SSE2 instructions" OFF) option(USE_SSE2_INSTRUCTIONS "Compile your program with SSE2 instructions" OFF)
...@@ -34,7 +33,7 @@ if (NOT TARGET dlib) ...@@ -34,7 +33,7 @@ if (NOT TARGET dlib)
elseif(USE_SSE2_INSTRUCTIONS) elseif(USE_SSE2_INSTRUCTIONS)
add_definitions(-msse2) add_definitions(-msse2)
endif() endif()
elseif (MSVC OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # else if using Visual Studio elseif (MSVC OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # else if using Visual Studio
# Use SSE2 by default when using Visual Studio. # Use SSE2 by default when using Visual Studio.
option(USE_SSE2_INSTRUCTIONS "Compile your program with SSE2 instructions" ON) option(USE_SSE2_INSTRUCTIONS "Compile your program with SSE2 instructions" ON)
# Visual Studio 2005 didn't support SSE4 # Visual Studio 2005 didn't support SSE4
...@@ -66,16 +65,19 @@ if (NOT TARGET dlib) ...@@ -66,16 +65,19 @@ if (NOT TARGET dlib)
endif() endif()
add_definitions(-DDLIB_HAVE_SSE2) add_definitions(-DDLIB_HAVE_SSE2)
endif() endif()
endif() endif()
# Add folder containing dlib to the include search path.
INCLUDE_DIRECTORIES(${dlib_path}/..)
# Add folder containing dlib to the include search path. # This is really optional, but nice. It will make sure the build mode
INCLUDE_DIRECTORIES(${dlib_path}/..) # created by cmake is always release by default.
include(${dlib_path}/release_build_by_default)
# This is really optional, but nice. It will make sure the build mode
# created by cmake is always release by default.
include(${dlib_path}/release_build_by_default)
# Don't add dlib if it's already been added to the cmake project
if (NOT TARGET dlib)
add_subdirectory(${dlib_path} dlib_build) add_subdirectory(${dlib_path} dlib_build)
endif() endif()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment