1 cmake_minimum_required(VERSION 2.6)
 
   4 set(PROJECT_DESCRIPTION
 
   5   "Communication library for Actions Micro AM7XXX based USB projectors and DPFs")
 
   7 set(PROJECT_VER_MAJOR 0)
 
   8 set(PROJECT_VER_MINOR 0)
 
   9 set(PROJECT_VER_PATCH 1)
 
  10 set(PROJECT_VER_EXTRA "")
 
  12   "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}${PROJECT_VER_EXTRA}")
 
  14   "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}")
 
  17   ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/")
 
  19 include (MaintenanceTools)
 
  21 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
 
  22 set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
 
  23 set(DOC_OUTPUT_PATH ${CMAKE_BINARY_DIR}/doc)
 
  25 # Because cmake cannot deal sanely with multiline strings. SRSLY?
 
  26 # See http://www.vtkedge.org/Bug/view.php?id=8362&nbn=8
 
  28   string(REPLACE ";" " " _flags "${ARGN}")
 
  29   set(${var} "${${var}} ${_flags}")
 
  32 if (CMAKE_COMPILER_IS_GNUCC)
 
  33   add_definitions(-Wall)
 
  35   # let CFLAGS env override this
 
  36   if(CMAKE_C_FLAGS STREQUAL "")
 
  37     set(CMAKE_C_FLAGS "-std=c99 -pedantic -Wall -Wextra -O2")
 
  40   # Don't make pedantic checks errors,
 
  41   # as vanilla libusb-1.0.8 can't live with that
 
  42   #add_flags(CMAKE_C_FLAGS -pedantic-errors)
 
  45   #add_flags(CMAKE_C_FLAGS -Wunused-but-set-variable)
 
  47   add_flags(CMAKE_C_FLAGS
 
  55     -Wp,-D_FORTIFY_SOURCE=2
 
  58     -Wmissing-declarations
 
  59     -Wmissing-format-attribute
 
  63     -Wold-style-definition
 
  71     -Wunsafe-loop-optimizations
 
  74     --param=ssp-buffer-size=4)
 
  77 set(CMAKE_C_FLAGS_DEBUG "-g -DDEBUG=1 -Werror")
 
  78 set(CMAKE_C_FLAGS_RELEASE "-O2")
 
  79 set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
 
  83 add_subdirectory(examples)