mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	fix https://github.com/ossrs/srs/issues/3155 Build srt-1-fit fails with `standard attributes in middle of decl-specifiers` on GCC 12,Arch Linux. See https://github.com/Haivision/srt/releases/tag/v1.5.3
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| #
 | |
| # SRT - Secure, Reliable, Transport Copyright (c) 2022 Haivision Systems Inc.
 | |
| #
 | |
| # This Source Code Form is subject to the terms of the Mozilla Public License,
 | |
| # v. 2.0. If a copy of the MPL was not distributed with this file, You can
 | |
| # obtain one at http://mozilla.org/MPL/2.0/.
 | |
| #
 | |
| 
 | |
| # Check for C++11 std::put_time().
 | |
| #
 | |
| # Sets:
 | |
| #   HAVE_CXX_STD_PUT_TIME
 | |
| 
 | |
| include(CheckCSourceCompiles)
 | |
| 
 | |
| function(CheckCXXStdPutTime)
 | |
| 
 | |
|    unset(HAVE_CXX_STD_PUT_TIME CACHE)
 | |
| 
 | |
|    set(CMAKE_TRY_COMPILE_TARGET_TYPE EXECUTABLE) # CMake 3.6
 | |
| 
 | |
|    unset(CMAKE_REQUIRED_FLAGS)
 | |
|    unset(CMAKE_REQUIRED_LIBRARIES)
 | |
|    unset(CMAKE_REQUIRED_LINK_OPTIONS)
 | |
| 
 | |
|    set(CheckCXXStdPutTime_CODE
 | |
|       "
 | |
|       #include <iostream>
 | |
|       #include <iomanip>
 | |
|       #include <ctime>
 | |
|       int main(void)
 | |
|       {
 | |
|          const int result = 0;
 | |
|          std::time_t t = std::time(nullptr);
 | |
|          std::tm tm = *std::localtime(&t);
 | |
|          std::cout
 | |
|             << std::put_time(&tm, \"%FT%T\")
 | |
|             << std::setfill('0')
 | |
|             << std::setw(6)
 | |
|             << std::endl;
 | |
|          return result;
 | |
|       }
 | |
|       "
 | |
|    )
 | |
| 
 | |
|    # NOTE: Should we set -std or use the current compiler configuration.
 | |
|    #     It seems that the top level build does not track the compiler
 | |
|    #     in a consistent manner. So Maybe we need this?
 | |
|    set(CMAKE_REQUIRED_FLAGS "-std=c++11")
 | |
| 
 | |
|    # Check that the compiler can build the std::put_time() example:
 | |
|    message(STATUS "Checking for C++ 'std::put_time()':")
 | |
|    check_cxx_source_compiles(
 | |
|       "${CheckCXXStdPutTime_CODE}"
 | |
|       HAVE_CXX_STD_PUT_TIME)
 | |
| 
 | |
| endfunction(CheckCXXStdPutTime)
 |