Support linux (ubuntu) build

master
Ryan Lee 2016-06-25 14:38:47 +09:00
parent 28e5037946
commit d41add5722
3 changed files with 37 additions and 5 deletions

View File

@ -56,7 +56,7 @@ elseif (APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fvisibility=hidden")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
elseif (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()

View File

@ -360,7 +360,6 @@ if(WIN32 AND MSVC)
Secur32.lib Winmm.lib msdmo.lib dmoguids.lib wmcodecdspuuid.lib
wininet.lib dnsapi.lib version.lib ws2_32.lib Strmiids.lib)
list(APPEND WEBRTC_LIBRARIES_EXTERNAL ${_WEBRTC_EXTERNAL_LIBRARIES})
# list(APPEND WEBRTC_LIBRARIES ${_WEBRTC_EXTERNAL_LIBRARIES})
elseif (APPLE)
find_library(FOUNDATION_LIBRARY Foundation)
find_library(CORE_FOUNDATION_LIBRARY CoreFoundation)
@ -377,12 +376,10 @@ elseif (APPLE)
elseif (UNIX)
find_package(Threads REQUIRED)
find_library(X11_LIBRARY NAMES X11)
# find_package(X11_LIBRARY X11 REQUIRED)
list(APPEND WEBRTC_LIBRARIES_EXTERNAL
${CMAKE_THREAD_LIBS_INIT}
${X11_LIBRARY}
# ${X11_LIBRARIES}
${CMAKE_DL_LIBS})
endif()

View File

@ -30,7 +30,8 @@ macro (MERGE_STATIC_LIBRARIES TARGET_LIB LIBRARIES LIBRARIES_DEBUG)
endif()
endforeach()
else (APPLE)
elseif (APPLE)
# Use OSX's libtool to merge archives
if(multiconfig)
message(FATAL_ERROR "Multiple configurations are not supported")
@ -54,6 +55,40 @@ macro (MERGE_STATIC_LIBRARIES TARGET_LIB LIBRARIES LIBRARIES_DEBUG)
${_LIBRARIES} "${target_temp_file}"
COMMAND rm "${target_temp_file}"
)
elseif (UNIX)
# general UNIX - need to "ar -M"
if(multiconfig)
message(FATAL_ERROR "Multiple configurations are not supported")
endif()
string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE)
if (_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
set(_LIBRARIES ${LIBRARIES_DEBUG})
else()
set(_LIBRARIES ${LIBRARIES})
endif()
get_target_property (outfile ${TARGET_LIB} LOCATION)
set(target_temp_file "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${TARGET_LIB}_temp.a")
set(MRI_SCRIPT "create ${outfile}\n")
set(MRI_SCRIPT "${MRI_SCRIPT}addlib ${target_temp_file}\n")
foreach(lib ${_LIBRARIES})
set(MRI_SCRIPT "${MRI_SCRIPT}addlib ${lib}\n")
endforeach()
set(MRI_SCRIPT "${MRI_SCRIPT}save\n")
set(MRI_SCRIPT "${MRI_SCRIPT}end\n")
file(WRITE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/throughnet.mri" "${MRI_SCRIPT}")
add_custom_command(TARGET ${TARGET_LIB} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${outfile}"
"${target_temp_file}"
COMMAND rm "${outfile}"
COMMAND ${CMAKE_AR} -M < "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/throughnet.mri"
COMMAND rm "${target_temp_file}"
)
endif (WIN32)
endmacro (MERGE_STATIC_LIBRARIES)