Skip to content
Snippets Groups Projects
  • Nat Goodspeed's avatar
    8a461c00
    DRTVWR-418: Until we figure out how to say FIXED:NO to linker, don't. · 8a461c00
    Nat Goodspeed authored
    The present CMake logic wants to pass FIXED:NO to the linker for 64-bit
    builds, which on the face of it seems like a Good Thing: it permits code to be
    relocated in memory, preventing collisions if two libraries happen to want to
    load into overlapping address ranges.
    
    However the way it's being specified is wrong and harmful. Passing /FIXED:NO
    to the compiler command line engages /FI (Forced Include!) of a nonexistent
    file XED:NO -- producing lots of baffling fatal compile errors.
    
    Thanks Callum for diagnosing this!
    8a461c00
    History
    DRTVWR-418: Until we figure out how to say FIXED:NO to linker, don't.
    Nat Goodspeed authored
    The present CMake logic wants to pass FIXED:NO to the linker for 64-bit
    builds, which on the face of it seems like a Good Thing: it permits code to be
    relocated in memory, preventing collisions if two libraries happen to want to
    load into overlapping address ranges.
    
    However the way it's being specified is wrong and harmful. Passing /FIXED:NO
    to the compiler command line engages /FI (Forced Include!) of a nonexistent
    file XED:NO -- producing lots of baffling fatal compile errors.
    
    Thanks Callum for diagnosing this!
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
CMakeLists.txt 1.60 KiB
# -*- cmake -*-

project(media_plugin_gstreamer010)

include(00-Common)
include(LLCommon)
include(LLImage)
include(LLPlugin)
include(LLMath)
include(LLRender)
include(LLWindow)
include(Linking)
include(PluginAPI)
include(MediaPluginBase)
include(OpenGL)

include(GStreamer010Plugin)

include_directories(
    ${LLPLUGIN_INCLUDE_DIRS}
    ${MEDIA_PLUGIN_BASE_INCLUDE_DIRS}
    ${LLCOMMON_INCLUDE_DIRS}
    ${LLMATH_INCLUDE_DIRS}
    ${LLIMAGE_INCLUDE_DIRS}
    ${LLRENDER_INCLUDE_DIRS}
    ${LLWINDOW_INCLUDE_DIRS}
    ${GSTREAMER010_INCLUDE_DIRS}
    ${GSTREAMER010_PLUGINS_BASE_INCLUDE_DIRS}
)
include_directories(SYSTEM
    ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
    )

### media_plugin_gstreamer010

if(NOT ADDRESS_SIZE EQUAL 32)
  if(WINDOWS)
    ##add_definitions(/FIXED:NO)
  else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
    add_definitions(-fPIC)
  endif(WINDOWS)
endif(NOT ADDRESS_SIZE EQUAL 32)

set(media_plugin_gstreamer010_SOURCE_FILES
    media_plugin_gstreamer010.cpp
    llmediaimplgstreamer_syms.cpp
    llmediaimplgstreamervidplug.cpp
    )

set(media_plugin_gstreamer010_HEADER_FILES
    llmediaimplgstreamervidplug.h
    llmediaimplgstreamer_syms.h
    llmediaimplgstreamertriviallogging.h
    )

add_library(media_plugin_gstreamer010
    SHARED
    ${media_plugin_gstreamer010_SOURCE_FILES}
)

target_link_libraries(media_plugin_gstreamer010
  ${LLPLUGIN_LIBRARIES}
  ${MEDIA_PLUGIN_BASE_LIBRARIES}
  ${LLCOMMON_LIBRARIES}
  ${PLUGIN_API_WINDOWS_LIBRARIES}
  ${GSTREAMER010_LIBRARIES}
)

add_dependencies(media_plugin_gstreamer010
  ${LLPLUGIN_LIBRARIES}
  ${MEDIA_PLUGIN_BASE_LIBRARIES}
  ${LLCOMMON_LIBRARIES}
)