diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e33c4e0e..0ead9ec8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,29 +20,16 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) endif() # Setup command line parameters for the compiler and linker -CHECK_CXX_COMPILER_FLAG("-Wall" WALL_FLAG_SUPPORTED) -if ( WALL_FLAG_SUPPORTED AND NOT CMAKE_CXX_FLAGS MATCHES "(^| )-Wall($| )") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") -endif ( ) -CHECK_CXX_COMPILER_FLAG("-Wpedantic" PEDANTIC_FLAG_SUPPORTED) -if ( PEDANTIC_FLAG_SUPPORTED AND NOT CMAKE_CXX_FLAGS MATCHES "(^| )pedantic($| )") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic") -endif ( ) -CHECK_CXX_COMPILER_FLAG("-Werror=return-type" WERROR_FLAG_SUPPORTED) -if ( WERROR_FLAG_SUPPORTED ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=return-type") -endif ( ) - -if ( CMAKE_VERSION VERSION_LESS "3.1" ) - CHECK_CXX_COMPILER_FLAG("-std=c++11" STD_FLAG_SUPPORTED) - if ( STD_FLAG_SUPPORTED ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - endif ( STD_FLAG_SUPPORTED ) -else ( CMAKE_VERSION VERSION_LESS "3.1" ) - set(CMAKE_CXX_STANDARD 11) -endif ( CMAKE_VERSION VERSION_LESS "3.1" ) - -find_package(Qt5 5.2.1 REQUIRED Network Gui) +foreach (FLAG all pedantic error=return-type) + CHECK_CXX_COMPILER_FLAG("-W${FLAG}" WARN_${FLAG}_SUPPORTED) + if ( WARN_${FLAG}_SUPPORTED AND NOT CMAKE_CXX_FLAGS MATCHES "(^| )-W?${FLAG}($| )") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W${FLAG}") + endif ( ) +endforeach () + +set(CMAKE_CXX_STANDARD 14) + +find_package(Qt5 5.6 REQUIRED Network Gui) get_filename_component(Qt5_Prefix "${Qt5_DIR}/../../../.." ABSOLUTE) message( STATUS ) @@ -54,6 +41,11 @@ if (CMAKE_BUILD_TYPE) endif(CMAKE_BUILD_TYPE) message( STATUS "Using compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}" ) message( STATUS "Using Qt ${Qt5_VERSION} at ${Qt5_Prefix}" ) +if (MATRIX_DOC_PATH AND GTAD_PATH) + message( STATUS "Generating API stubs enabled" ) + message( STATUS " Using GTAD at ${GTAD_PATH}" ) + message( STATUS " Using CS API files at ${MATRIX_DOC_PATH}/api/client-server" ) +endif () message( STATUS "=============================================================================" ) message( STATUS ) @@ -83,6 +75,26 @@ set(libqmatrixclient_SRCS jobs/mediathumbnailjob.cpp ) +set(API_DEF_PATH ${MATRIX_DOC_PATH}/api/client-server/) +file(GLOB_RECURSE API_DEFS RELATIVE ${PROJECT_SOURCE_DIR} + ${API_DEF_PATH}/*.yaml + ${API_DEF_PATH}/definitions/*.yaml + ${MATRIX_DOC_PATH}/event-schemas/schema/* +) +if (MATRIX_DOC_PATH AND GTAD_PATH) + add_custom_target(update-api + ${GTAD_PATH} --config jobs/gtad.yaml --out jobs/generated + ${MATRIX_DOC_PATH}/api/client-server + cas_login_redirect.yaml- cas_login_ticket.yaml- + old_sync.yaml- room_initial_sync.yaml- + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + SOURCES jobs/gtad.yaml + jobs/{{base}}.h.mustache jobs/{{base}}.cpp.mustache + ${API_DEFS} + VERBATIM + ) +endif() + aux_source_directory(jobs/generated libqmatrixclient_job_SRCS) set(example_SRCS examples/qmc-example.cpp) |