Fix the CMake build for Linux.
Bug 27225594
Change-Id: Ice38ce8ca8ef157e24d309fe6ac9ce2f69e9e816
Reviewed-on: https://swiftshader-review.googlesource.com/5363
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 959be25..c9add06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,7 +81,7 @@
# hides all the others. Gc sections is used in combination
# with each functions being in its section, to reduce the
# binary size.
- set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "${LINKFLAGS} -Wl,--hash-style=both,--version-script=${DIR}/exports.map,--gc-sections")
+ set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "${LINKFLAGS} -Wl,--hash-style=both,--version-script=${DIR}/exports.map,--gc-sections,--no-undefined")
endif()
endmacro()
@@ -618,29 +618,37 @@
${CMAKE_SOURCE_DIR}/include/*.h
)
-file(GLOB_RECURSE OPENGL_COMMON_LIST
- ${OPENGL_DIR}/common/*.cpp
- ${OPENGL_DIR}/common/*.h
- ${OPENGL_DIR}/common/*.hpp
- ${CMAKE_SOURCE_DIR}/include/*.h
-)
-
file(GLOB_RECURSE GL32_LIST
${OPENGL_DIR}/libGL/*.cpp
${OPENGL_DIR}/libGL/*.h
${OPENGL_DIR}/libGL/*.hpp
+ ${OPENGL_DIR}/common/*.cpp
+ ${OPENGL_DIR}/common/*.h
+ ${OPENGL_DIR}/common/*.hpp
+ ${CMAKE_SOURCE_DIR}/include/GL/*.h
)
file(GLOB_RECURSE GLES2_LIST
${OPENGL_DIR}/libGLESv2/*.cpp
${OPENGL_DIR}/libGLESv2/*.h
${OPENGL_DIR}/libGLESv2/*.hpp
+ ${OPENGL_DIR}/common/*.cpp
+ ${OPENGL_DIR}/common/*.h
+ ${OPENGL_DIR}/common/*.hpp
+ ${CMAKE_SOURCE_DIR}/include/KHR/*.h
+ ${CMAKE_SOURCE_DIR}/include/GLES2/*.h
+ ${CMAKE_SOURCE_DIR}/include/GLES3/*.h
)
file(GLOB_RECURSE GLES_CM_LIST
${OPENGL_DIR}/libGLES_CM/*.cpp
${OPENGL_DIR}/libGLES_CM/*.h
${OPENGL_DIR}/libGLES_CM/*.hpp
+ ${OPENGL_DIR}/common/*.cpp
+ ${OPENGL_DIR}/common/*.h
+ ${OPENGL_DIR}/common/*.hpp
+ ${CMAKE_SOURCE_DIR}/include/KHR/*.h
+ ${CMAKE_SOURCE_DIR}/include/GLES/*.h
)
file(GLOB_RECURSE OPENGL_COMPILER_LIST
@@ -679,6 +687,12 @@
list(APPEND SWIFTSHADER_LIST
${SOURCE_DIR}/Main/FrameBufferX11.cpp
${SOURCE_DIR}/Main/FrameBufferX11.hpp
+ ${SOURCE_DIR}/Common/SharedLibrary.hpp
+ ${SOURCE_DIR}/Main/libX11.cpp
+ ${SOURCE_DIR}/Main/libX11.hpp
+ )
+ list(APPEND EGL_LIST
+ ${SOURCE_DIR}/Common/SharedLibrary.hpp
${SOURCE_DIR}/Main/libX11.cpp
${SOURCE_DIR}/Main/libX11.hpp
)
@@ -702,7 +716,7 @@
if(WIN32)
set(OS_LIBS odbc32 odbccp32 WS2_32 dxguid)
elseif(LINUX)
- set(OS_LIBS dl X11 Xext pthread)
+ set(OS_LIBS dl pthread)
elseif(APPLE)
find_library(COCOA_FRAMEWORK Cocoa)
find_library(QUARTZ_FRAMEWORK Quartz)
@@ -729,14 +743,6 @@
)
target_link_libraries(Reactor llvm ${OS_LIBS})
-add_library(GLCommon STATIC ${OPENGL_COMMON_LIST})
-set_target_properties(GLCommon PROPERTIES
- INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
- POSITION_INDEPENDENT_CODE 1
- FOLDER "OpenGL"
-)
-target_link_libraries(GLCommon ${OS_LIBS})
-
add_library(GLCompiler STATIC ${OPENGL_COMPILER_LIST})
set_target_properties(GLCompiler PROPERTIES
INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
@@ -778,7 +784,7 @@
PREFIX ""
)
set_target_export_map(libGL ${SOURCE_DIR}/OpenGL/libGL)
- target_link_libraries(libGL SwiftShader Reactor GLCommon GLCompiler ${OS_LIBS})
+ target_link_libraries(libGL SwiftShader Reactor GLCompiler ${OS_LIBS})
endif()
if(BUILD_GLESv2)
@@ -790,7 +796,7 @@
PREFIX ""
)
set_target_export_map(libGLESv2 ${SOURCE_DIR}/OpenGL/libGLESv2)
- target_link_libraries(libGLESv2 SwiftShader Reactor GLCommon GLCompiler ${OS_LIBS})
+ target_link_libraries(libGLESv2 SwiftShader Reactor GLCompiler ${OS_LIBS})
add_custom_command(
TARGET libGLESv2
POST_BUILD
@@ -808,7 +814,7 @@
PREFIX ""
)
set_target_export_map(libGLES_CM ${SOURCE_DIR}/OpenGL/libGLES_CM)
- target_link_libraries(libGLES_CM SwiftShader Reactor GLCommon GLCompiler ${OS_LIBS})
+ target_link_libraries(libGLES_CM SwiftShader Reactor GLCompiler ${OS_LIBS})
add_custom_command(
TARGET libGLES_CM
POST_BUILD