cmake_minimum_required (VERSION 2.6 FATAL_ERROR) set(CMAKE_CONFIGURATION_TYPES "Debug;Release;Final" CACHE STRING "possible configurations" FORCE) list(FIND CMAKE_CONFIGURATION_TYPES "${CMAKE_BUILD_TYPE}" BuildTypeCurr) if ("${BuildTypeCurr}" LESS "0") set(CMAKE_BUILD_TYPE "Final" CACHE STRING "Build type defaults to Final" FORCE) endif() unset(BuildTypeCurr) set_property (GLOBAL PROPERTY DEBUG_CONFIGURATIONS "Debug;Release") project (WordReference CXX) message(STATUS "Configuring ${PROJECT_NAME} for ${CMAKE_BUILD_TYPE}") set (${PROJECT_NAME}_Version_Major 0) set (${PROJECT_NAME}_Version_Minor 1) set (${PROJECT_NAME}_App_Name "\"${PROJECT_NAME}\"") string (TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER) set (${PROJECT_NAME}_SourceCodeVar "\"\$${PROJECT_NAME_UPPER}_SOURCE_PATH\"") find_package(CURL REQUIRED) find_package(Boost 1.32.0 REQUIRED program_options) set (GNU_COMMON_C_FLAGS "-Werror") set (GNU_COMMON_CXX_FLAGS "-std=c++11 -Werror -fexceptions") foreach (ConfigType ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${ConfigType} ConfigTypeUpper) set(CMAKE_CXX_FLAGS_${ConfigTypeUpper} "${CMAKE_CXX_FLAGS_${ConfigTypeUpper}} ${GNU_COMMON_CXX_FLAGS} -DDUCK_${ConfigTypeUpper}") set(CMAKE_C_FLAGS_${ConfigTypeUpper} "${CMAKE_C_FLAGS_${ConfigTypeUpper}} ${GNU_COMMON_C_FLAGS} -DDUCK_${ConfigTypeUpper}") endforeach() set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DJSON_DEBUG") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DJSON_DEBUG") set(CMAKE_CXX_FLAGS_FINAL "${CMAKE_CXX_FLAGS_FINAL} -DNDEBUG") add_definitions(-DJSON_ISO_STRICT) include_directories(SYSTEM ${CURL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ) include_directories( src/ libjson/ ) link_directories( ${Boost_LIBRARY_DIRS} ) add_subdirectory(libjson) add_executable(${PROJECT_NAME} src/main.cpp src/WordReference.cpp ) target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${CURL_LIBRARIES} libjson )