diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 57 |
1 files changed, 41 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b1ce44..9b80f71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,14 +38,14 @@ cmake_minimum_required(VERSION 3.3) project(uriparser VERSION - 0.9.5 + 0.9.6 LANGUAGES C ) # See https://verbump.de/ for what these numbers do set(URIPARSER_SO_CURRENT 1) -set(URIPARSER_SO_REVISION 28) +set(URIPARSER_SO_REVISION 29) set(URIPARSER_SO_AGE 0) include(CheckCCompilerFlag) @@ -78,6 +78,11 @@ if(URIPARSER_BUILD_TOOLS AND NOT URIPARSER_BUILD_CHAR) message(SEND_ERROR "URIPARSER_BUILD_TOOLS=ON requires URIPARSER_BUILD_CHAR=ON.") endif() +if(URIPARSER_BUILD_TESTS) + # We have to call enable_language() before modifying any CMAKE_CXX_* variables + enable_language(CXX) +endif() + macro(uriparser_apply_msvc_runtime_to ref) string(REGEX REPLACE "/M[DT]d?" ${URIPARSER_MSVC_RUNTIME} ${ref} "${${ref}}") endmacro() @@ -104,17 +109,6 @@ if(URIPARSER_COMPILER_SUPPORTS_VISIBILITY) set(URIPARSER_EXTRA_COMPILE_FLAGS "${URIPARSER_EXTRA_COMPILE_FLAGS} -fvisibility=hidden") endif() -if(URIPARSER_WARNINGS_AS_ERRORS) - if(MSVC) - add_definitions(/WX) - else() - set(URIPARSER_EXTRA_COMPILE_FLAGS "${URIPARSER_EXTRA_COMPILE_FLAGS} -Werror") - endif() -endif() - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${URIPARSER_EXTRA_COMPILE_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${URIPARSER_EXTRA_COMPILE_FLAGS}") - # # config.h # @@ -259,8 +253,6 @@ endif() # C++ test runner # if(URIPARSER_BUILD_TESTS) - enable_language(CXX) - if(MSVC AND URIPARSER_MSVC_RUNTIME) uriparser_apply_msvc_runtime_to(CMAKE_CXX_FLAGS) uriparser_apply_msvc_runtime_to(CMAKE_CXX_FLAGS_DEBUG) @@ -286,6 +278,7 @@ if(URIPARSER_BUILD_TESTS) target_compile_definitions(testrunner PRIVATE URI_STATIC_BUILD) if(MSVC) + target_compile_definitions(testrunner PRIVATE -D_CRT_NONSTDC_NO_WARNINGS) target_compile_definitions(testrunner PRIVATE -D_CRT_SECURE_NO_WARNINGS) endif() @@ -311,17 +304,37 @@ if(URIPARSER_BUILD_TESTS) target_compile_options(testrunner PRIVATE /EHsc) endif() + if(MINGW) + set(_URIPARSER_TEST_COMMAND wine testrunner) + else() + set(_URIPARSER_TEST_COMMAND testrunner) + endif() + add_test( NAME test COMMAND - testrunner + ${_URIPARSER_TEST_COMMAND} ) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) endif() # +# Compiler flags +# +if(URIPARSER_WARNINGS_AS_ERRORS) + if(MSVC) + add_definitions(/WX) + else() + set(URIPARSER_EXTRA_COMPILE_FLAGS "${URIPARSER_EXTRA_COMPILE_FLAGS} -Werror") + endif() +endif() + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${URIPARSER_EXTRA_COMPILE_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${URIPARSER_EXTRA_COMPILE_FLAGS}") + +# # Doxygen API documentation # if(URIPARSER_BUILD_DOCS) @@ -423,6 +436,18 @@ uriparser_install( # pkg-config file # if(NOT MSVC) + if(CMAKE_INSTALL_LIBDIR MATCHES "^/") + set(_URIPARSER_PKGCONFIG_LIBDIR "${CMAKE_INSTALL_LIBDIR}") + else() + set(_URIPARSER_PKGCONFIG_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") + endif() + + if(CMAKE_INSTALL_INCLUDEDIR MATCHES "^/") + set(_URIPARSER_PKGCONFIG_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") + else() + set(_URIPARSER_PKGCONFIG_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") + endif() + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/liburiparser.pc.in liburiparser.pc @ONLY) uriparser_install( FILES |