compile:修正win下mingw编译
This commit is contained in:
		
							parent
							
								
									cf6168a89a
								
							
						
					
					
						commit
						1e83e393eb
					
				@ -8,6 +8,12 @@ if (MSVC)
 | 
				
			|||||||
    add_compile_options(/source-charset:utf-8)
 | 
					    add_compile_options(/source-charset:utf-8)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
 | 
				
			||||||
 | 
					    MESSAGE(STATUS "Ofen Add MinGW Param.")
 | 
				
			||||||
 | 
					    add_compile_options(-finput-charset=utf-8)
 | 
				
			||||||
 | 
					    add_compile_options(-fexec-charset=gbk)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(CMAKE_DEBUG_POSTFIX "d")
 | 
					set(CMAKE_DEBUG_POSTFIX "d")
 | 
				
			||||||
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
 | 
					message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
 | 
				
			||||||
message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}")
 | 
					message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}")
 | 
				
			||||||
@ -30,7 +36,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}
 | 
				
			|||||||
add_library(Ofen STATIC ${SRC_FILES})
 | 
					add_library(Ofen STATIC ${SRC_FILES})
 | 
				
			||||||
target_include_directories(Ofen PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
 | 
					target_include_directories(Ofen PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# ****************************************************************************************
 | 
					# ****************************************************************************************
 | 
				
			||||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
 | 
					install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
 | 
				
			||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/OfenConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/Ofen)
 | 
					install(FILES ${CMAKE_CURRENT_BINARY_DIR}/OfenConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/Ofen)
 | 
				
			||||||
 | 
				
			|||||||
@ -73,6 +73,16 @@ ofString COfPath::get_home()
 | 
				
			|||||||
#if defined(_WIN32)
 | 
					#if defined(_WIN32)
 | 
				
			||||||
    ofChar* value = nullptr;
 | 
					    ofChar* value = nullptr;
 | 
				
			||||||
    std::size_t len = 0;
 | 
					    std::size_t len = 0;
 | 
				
			||||||
 | 
					    // _dupenv_s() 在 Visual Studio 2008 的 CRT (msvcr90) 中引入的,似乎没有进入系统 CRT (msvcrt)。
 | 
				
			||||||
 | 
					    // mingw-w64 GCC 通常默认只链接到系统 CRT,所以所以找不到这个符号。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__MINGW32__) || defined(__MINGW64__)
 | 
				
			||||||
 | 
					    ofChar* homedir = getenv("USERPROFILE");
 | 
				
			||||||
 | 
					    if (homedir) {
 | 
				
			||||||
 | 
					        return ofString(homedir);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return ofT("");
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#ifdef UNICODE_OFSTR
 | 
					#ifdef UNICODE_OFSTR
 | 
				
			||||||
    auto err = _wdupenv_s(&value, &len, ofT("USERPROFILE"));
 | 
					    auto err = _wdupenv_s(&value, &len, ofT("USERPROFILE"));
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@ -85,6 +95,7 @@ ofString COfPath::get_home()
 | 
				
			|||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        return ofT("");
 | 
					        return ofT("");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
    ofChar* homedir = getenv("HOME");
 | 
					    ofChar* homedir = getenv("HOME");
 | 
				
			||||||
    if (homedir) {
 | 
					    if (homedir) {
 | 
				
			||||||
 | 
				
			|||||||
@ -32,7 +32,11 @@ void CMutBuffer::remove_of(int start_pos, int len)
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					#if defined(__MINGW32__) || defined(__MINGW64__)
 | 
				
			||||||
 | 
					    auto end_pos = std::min(start_pos + len, static_cast<int>(buffer_.size()));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
    auto end_pos = min(start_pos + len, static_cast<int>(buffer_.size()));
 | 
					    auto end_pos = min(start_pos + len, static_cast<int>(buffer_.size()));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
    auto end_pos = std::min(start_pos + len, static_cast<int>(buffer_.size()));
 | 
					    auto end_pos = std::min(start_pos + len, static_cast<int>(buffer_.size()));
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user