Commit a71aff27 by Antonio Maiorano

CMake: split out all src/OpenGL targets into their own CMakeLists

Added CMakeLists.txt to the following folders that produce the following targets: src/OpenGL/common -> libGLESCommon (new) src/OpenGL/compiler -> GLCompiler src/OpenGL/libEGL -> libEGL src/OpenGL/libGLESv2 ->libGLESv2 src/OpenGL/libGLES_CM -> libGLES_CM Change-Id: I8217918b13b6963d18d1e6f89b4fa9e806bb36db Bug: b/145758253 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43588 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarAntonio Maiorano <amaiorano@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 4ce6a885
......@@ -647,51 +647,6 @@ set(VULKAN_INCLUDE_DIR
# File Lists
###########################################################
file(GLOB_RECURSE EGL_LIST
${OPENGL_DIR}/libEGL/*.cpp
${OPENGL_DIR}/libEGL/*.h
${OPENGL_DIR}/libEGL/*.hpp
${OPENGL_DIR}/common/Object.cpp
${OPENGL_DIR}/common/Object.hpp
${OPENGL_DIR}/common/debug.cpp
${OPENGL_DIR}/common/debug.h
${CMAKE_CURRENT_SOURCE_DIR}/include/*.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_CURRENT_SOURCE_DIR}/include/KHR/*.h
${CMAKE_CURRENT_SOURCE_DIR}/include/GLES2/*.h
${CMAKE_CURRENT_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_CURRENT_SOURCE_DIR}/include/KHR/*.h
${CMAKE_CURRENT_SOURCE_DIR}/include/GLES/*.h
)
file(GLOB_RECURSE OPENGL_COMPILER_LIST
${OPENGL_COMPILER_DIR}/*.cpp
${OPENGL_COMPILER_DIR}/*.h
${OPENGL_COMPILER_DIR}/*.hpp
)
file(GLOB_RECURSE OPENGL_COMPILER_OS_SPECIFIC_LIST
${OPENGL_COMPILER_DIR}/ossource*.cpp
${OPENGL_COMPILER_DIR}/ossource*.h
${OPENGL_COMPILER_DIR}/ossource*.hpp
)
list(REMOVE_ITEM OPENGL_COMPILER_LIST ${OPENGL_COMPILER_OS_SPECIFIC_LIST})
file(GLOB VULKAN_LIST
${VULKAN_DIR}/*.cpp
......@@ -749,20 +704,12 @@ endif()
###########################################################
if(WIN32)
list(APPEND OPENGL_COMPILER_LIST ${OPENGL_COMPILER_DIR}/ossource_win.cpp)
list(APPEND EGL_LIST ${OPENGL_DIR}/libEGL/libEGL.rc)
list(APPEND GLES2_LIST ${OPENGL_DIR}/libGLESv2/libGLESv2.rc)
list(APPEND GLES_CM_LIST ${OPENGL_DIR}/libGLES_CM/libGLES_CM.rc)
list(APPEND VULKAN_LIST
${VULKAN_DIR}/Vulkan.rc
${SOURCE_DIR}/WSI/Win32SurfaceKHR.cpp
${SOURCE_DIR}/WSI/Win32SurfaceKHR.hpp
)
elseif(LINUX)
list(APPEND OPENGL_COMPILER_LIST
${OPENGL_COMPILER_DIR}/ossource_posix.cpp
)
if(X11)
list(APPEND VULKAN_LIST
${SOURCE_DIR}/WSI/XlibSurfaceKHR.cpp
......@@ -780,22 +727,10 @@ elseif(LINUX)
endif()
elseif(APPLE)
list(APPEND EGL_LIST
${OPENGL_DIR}/libEGL/OSXUtils.mm
${OPENGL_DIR}/libEGL/OSXUtils.hpp
)
list(APPEND OPENGL_COMPILER_LIST
${OPENGL_COMPILER_DIR}/ossource_posix.cpp
)
list(APPEND VULKAN_LIST
${SOURCE_DIR}/WSI/MetalSurface.mm
${SOURCE_DIR}/WSI/MetalSurface.h
)
elseif(ANDROID)
list(APPEND OPENGL_COMPILER_LIST
${OPENGL_COMPILER_DIR}/ossource_posix.cpp
)
endif()
if(WIN32)
......@@ -825,7 +760,6 @@ else()
message(FATAL_ERROR "REACTOR_BACKEND must be 'LLVM' or 'Subzero'")
endif()
add_subdirectory(src/Common) # Add gl_common target
add_subdirectory(src/Main) # Add gl_main target
add_subdirectory(src/Shader) # Add gl_shader target
......@@ -840,98 +774,19 @@ target_link_libraries(gl_swiftshader_core INTERFACE
gl_renderer
)
add_library(GLCompiler STATIC EXCLUDE_FROM_ALL ${OPENGL_COMPILER_LIST})
set_target_properties(GLCompiler PROPERTIES
INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
)
target_link_libraries(GLCompiler ${OS_LIBS} ${SWIFTSHADER_LIBS})
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(LIB_PREFIX "lib64")
else()
set(LIB_PREFIX "lib")
endif()
add_subdirectory(src/OpenGL/common EXCLUDE_FROM_ALL) # Add libGLESCommon target
add_subdirectory(src/OpenGL/compiler EXCLUDE_FROM_ALL) # Add GLCompiler target
if(SWIFTSHADER_BUILD_EGL)
add_library(libEGL SHARED ${EGL_LIST})
set_target_properties(libEGL PROPERTIES
INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
FOLDER "OpenGL"
COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
COMPILE_DEFINITIONS "EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
PREFIX ""
)
if(LINUX)
if(X11)
set_property(TARGET libEGL APPEND PROPERTY COMPILE_DEFINITIONS "USE_X11=1")
endif()
endif()
if (ANDROID)
set_target_properties(libEGL PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libEGL ${SOURCE_DIR}/OpenGL/libEGL)
target_link_libraries(libEGL gl_swiftshader_core ${OS_LIBS} ${SWIFTSHADER_LIBS})
add_custom_command(
TARGET libEGL
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
add_subdirectory(src/OpenGL/libEGL) # Add libEGL target
endif()
if(SWIFTSHADER_BUILD_GLESv2)
add_library(libGLESv2 SHARED ${GLES2_LIST})
set_target_properties(libGLESv2 PROPERTIES
INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
FOLDER "OpenGL"
COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
PREFIX ""
)
if (ANDROID)
set_target_properties(libGLESv2 PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libGLESv2 ${SOURCE_DIR}/OpenGL/libGLESv2)
target_link_libraries(libGLESv2 gl_swiftshader_core ${Reactor} GLCompiler ${OS_LIBS} ${SWIFTSHADER_LIBS})
add_custom_command(
TARGET libGLESv2
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
add_subdirectory(src/OpenGL/libGLESv2) # Add libGLESv2 target
endif()
if(SWIFTSHADER_BUILD_GLES_CM)
add_library(libGLES_CM SHARED ${GLES_CM_LIST})
set_target_properties(libGLES_CM PROPERTIES
INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
FOLDER "OpenGL"
COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
PREFIX ""
)
if (ANDROID)
set_target_properties(libGLES_CM PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libGLES_CM ${SOURCE_DIR}/OpenGL/libGLES_CM)
target_link_libraries(libGLES_CM gl_swiftshader_core ${Reactor} GLCompiler ${OS_LIBS} ${SWIFTSHADER_LIBS})
add_custom_command(
TARGET libGLES_CM
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLES_CM>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLES_CM> $<TARGET_FILE_DIR:libGLES_CM>/translator/${LIB_PREFIX}GLES_CM_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
)
add_subdirectory(src/OpenGL/libGLES_CM) # Add libGLES_CM target
endif(SWIFTSHADER_BUILD_GLES_CM)
if(SWIFTSHADER_BUILD_VULKAN)
......
# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(ROOT_PROJECT_COMPILE_OPTIONS
${SWIFTSHADER_COMPILE_OPTIONS}
${WARNINGS_AS_ERRORS}
)
set(ROOT_PROJECT_LINK_LIBRARIES
${OS_LIBS}
${SWIFTSHADER_LIBS}
)
set(LIBGL_COMMON_SRC_FILES
debug.cpp
debug.h
Image.cpp
Image.hpp
MatrixStack.cpp
MatrixStack.hpp
NameSpace.hpp
Object.cpp
Object.hpp
Surface.hpp
)
add_library(libGLESCommon
${LIBGL_COMMON_SRC_FILES}
)
set_target_properties(libGLESCommon PROPERTIES
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
PREFIX ""
)
target_include_directories(libGLESCommon
PUBLIC
".."
"${CMAKE_SOURCE_DIR}/include"
"${CMAKE_SOURCE_DIR}/src"
)
target_compile_definitions(libGLESCommon
PRIVATE
)
target_compile_options(libGLESCommon
PUBLIC
${ROOT_PROJECT_COMPILE_OPTIONS}
)
target_link_libraries(libGLESCommon
PUBLIC
${ROOT_PROJECT_LINK_LIBRARIES}
)
# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(ROOT_PROJECT_COMPILE_OPTIONS
${SWIFTSHADER_COMPILE_OPTIONS}
${WARNINGS_AS_ERRORS}
)
set(ROOT_PROJECT_LINK_LIBRARIES
${OS_LIBS}
${SWIFTSHADER_LIBS}
)
set(OPENGL_COMPILER_SRC_FILES
AnalyzeCallDepth.cpp
AnalyzeCallDepth.h
BaseTypes.h
Common.h
Compiler.cpp
Compiler.h
ConstantUnion.h
debug.cpp
debug.h
Diagnostics.cpp
Diagnostics.h
DirectiveHandler.cpp
DirectiveHandler.h
ExtensionBehavior.h
glslang_lex.cpp
glslang_tab.cpp
glslang_tab.h
glslang.h
InfoSink.cpp
InfoSink.h
Initialize.cpp
Initialize.h
InitializeGlobals.h
InitializeParseContext.cpp
InitializeParseContext.h
Intermediate.cpp
intermediate.h
intermOut.cpp
IntermTraverse.cpp
localintermediate.h
MMap.h
osinclude.h
OutputASM.cpp
OutputASM.h
parseConst.cpp
ParseHelper.cpp
ParseHelper.h
PoolAlloc.cpp
PoolAlloc.h
Pragma.h
preprocessor/DiagnosticsBase.cpp
preprocessor/DiagnosticsBase.h
preprocessor/DirectiveHandlerBase.cpp
preprocessor/DirectiveHandlerBase.h
preprocessor/DirectiveParser.cpp
preprocessor/DirectiveParser.h
preprocessor/ExpressionParser.cpp
preprocessor/ExpressionParser.h
preprocessor/Input.cpp
preprocessor/Input.h
preprocessor/length_limits.h
preprocessor/Lexer.cpp
preprocessor/Lexer.h
preprocessor/Macro.cpp
preprocessor/Macro.h
preprocessor/MacroExpander.cpp
preprocessor/MacroExpander.h
preprocessor/numeric_lex.h
preprocessor/pp_utils.h
preprocessor/Preprocessor.cpp
preprocessor/Preprocessor.h
preprocessor/SourceLocation.h
preprocessor/Token.cpp
preprocessor/Token.h
preprocessor/Tokenizer.cpp
preprocessor/Tokenizer.h
SymbolTable.cpp
SymbolTable.h
TranslatorASM.cpp
TranslatorASM.h
Types.h
util.cpp
util.h
ValidateLimitations.cpp
ValidateLimitations.h
ValidateSwitch.cpp
ValidateSwitch.h
)
if(WIN32)
list(APPEND OPENGL_COMPILER_SRC_FILES
ossource_win.cpp
)
elseif(LINUX)
list(APPEND OPENGL_COMPILER_SRC_FILES
ossource_posix.cpp
)
elseif(APPLE)
list(APPEND OPENGL_COMPILER_SRC_FILES
ossource_posix.cpp
)
elseif(ANDROID)
list(APPEND OPENGL_COMPILER_SRC_FILES
ossource_posix.cpp
)
endif()
add_library(GLCompiler
${OPENGL_COMPILER_SRC_FILES}
)
set_target_properties(GLCompiler PROPERTIES
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
)
target_include_directories(GLCompiler
PRIVATE
".."
"${CMAKE_SOURCE_DIR}/include"
"${CMAKE_SOURCE_DIR}/src"
)
target_compile_definitions(GLCompiler
PRIVATE
)
target_compile_options(GLCompiler
PRIVATE
${ROOT_PROJECT_COMPILE_OPTIONS}
)
target_link_libraries(GLCompiler
PRIVATE
${ROOT_PROJECT_LINK_LIBRARIES}
)
# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(ROOT_PROJECT_COMPILE_OPTIONS
${SWIFTSHADER_COMPILE_OPTIONS}
${WARNINGS_AS_ERRORS}
)
set(ROOT_PROJECT_LINK_LIBRARIES
${OS_LIBS}
${SWIFTSHADER_LIBS}
)
set(LIBEGL_SRC_FILES
Config.cpp
Config.h
Context.hpp
Display.cpp
Display.h
libEGL.cpp
libEGL.hpp
main.cpp
main.h
OSXUtils.hpp
resource.h
Surface.cpp
Surface.hpp
Sync.hpp
Texture.hpp
)
if(WIN32)
list(APPEND LIBEGL_SRC_FILES
libEGL.rc
)
elseif(APPLE)
list(APPEND LIBEGL_SRC_FILES
OSXUtils.mm
OSXUtils.hpp
)
endif()
add_library(libEGL SHARED
${LIBEGL_SRC_FILES}
)
set_target_properties(libEGL PROPERTIES
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
PREFIX ""
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
target_include_directories(libEGL
PRIVATE
".."
"../.."
)
target_compile_definitions(libEGL
PRIVATE
"EGL_EGLEXT_PROTOTYPES"
"EGLAPI="
"NO_SANITIZE_FUNCTION="
$<$<CONFIG:Debug>:"DEBUGGER_WAIT_DIALOG">
)
target_compile_options(libEGL
PRIVATE
${ROOT_PROJECT_COMPILE_OPTIONS}
)
target_link_libraries(libEGL
PRIVATE
libGLESCommon
gl_swiftshader_core
${ROOT_PROJECT_LINK_LIBRARIES}
)
if(LINUX)
if(X11)
set_property(TARGET libEGL APPEND PROPERTY COMPILE_DEFINITIONS "USE_X11=1")
endif()
endif()
if (ANDROID)
set_target_properties(libEGL PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libEGL ${CMAKE_CURRENT_SOURCE_DIR})
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(LIB_PREFIX "lib64")
else()
set(LIB_PREFIX "lib")
endif()
add_custom_command(
TARGET libEGL
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(ROOT_PROJECT_COMPILE_OPTIONS
${SWIFTSHADER_COMPILE_OPTIONS}
${WARNINGS_AS_ERRORS}
)
set(ROOT_PROJECT_LINK_LIBRARIES
${OS_LIBS}
${SWIFTSHADER_LIBS}
)
set(LIBGLES_CM_SRC_FILES
Buffer.cpp
Buffer.h
Context.cpp
Context.h
Device.cpp
Device.hpp
Framebuffer.cpp
Framebuffer.h
IndexDataManager.cpp
IndexDataManager.h
libGLES_CM.cpp
libGLES_CM.hpp
main.cpp
main.h
mathutil.h
Renderbuffer.cpp
Renderbuffer.h
resource.h
ResourceManager.cpp
ResourceManager.h
Texture.cpp
Texture.h
utilities.cpp
utilities.h
VertexDataManager.cpp
VertexDataManager.h
)
if(WIN32)
list(APPEND LIBGLES_CM_SRC_FILES
libGLES_CM.rc
)
endif()
add_library(libGLES_CM SHARED
${LIBGLES_CM_SRC_FILES}
)
set_target_properties(libGLES_CM PROPERTIES
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
PREFIX ""
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
target_include_directories(libGLES_CM
PRIVATE
".."
"../.."
)
target_compile_definitions(libGLES_CM
PRIVATE
"GL_GLEXT_PROTOTYPES"
"EGLAPI="
"GL_API="
"GL_APICALL="
"GLAPI="
)
target_compile_options(libGLES_CM
PRIVATE
${ROOT_PROJECT_COMPILE_OPTIONS}
)
target_link_libraries(libGLES_CM
PRIVATE
libGLESCommon
gl_swiftshader_core
${ROOT_PROJECT_LINK_LIBRARIES}
)
if (ANDROID)
set_target_properties(libGLES_CM PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libGLES_CM ${CMAKE_CURRENT_SOURCE_DIR})
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(LIB_PREFIX "lib64")
else()
set(LIB_PREFIX "lib")
endif()
add_custom_command(
TARGET libGLES_CM
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLES_CM>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLES_CM> $<TARGET_FILE_DIR:libGLES_CM>/translator/${LIB_PREFIX}GLES_CM_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
)
# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set(ROOT_PROJECT_COMPILE_OPTIONS
${SWIFTSHADER_COMPILE_OPTIONS}
${WARNINGS_AS_ERRORS}
)
set(ROOT_PROJECT_LINK_LIBRARIES
${OS_LIBS}
${SWIFTSHADER_LIBS}
)
set(LIBGLESV2_SRC_FILES
Buffer.cpp
Buffer.h
Context.cpp
Context.h
Device.cpp
Device.hpp
entry_points.cpp
entry_points.h
Fence.cpp
Fence.h
Framebuffer.cpp
Framebuffer.h
IndexDataManager.cpp
IndexDataManager.h
libGLESv2.cpp
libGLESv2.hpp
libGLESv3.cpp
main.cpp
main.h
mathutil.h
Program.cpp
Program.h
Query.cpp
Query.h
Renderbuffer.cpp
Renderbuffer.h
resource.h
ResourceManager.cpp
ResourceManager.h
Sampler.h
Shader.cpp
Shader.h
Texture.cpp
Texture.h
TransformFeedback.cpp
TransformFeedback.h
utilities.cpp
utilities.h
VertexArray.cpp
VertexArray.h
VertexDataManager.cpp
VertexDataManager.h
)
if(WIN32)
list(APPEND LIBGLESV2_SRC_FILES
libGLESv2.rc
)
endif()
add_library(libGLESv2 SHARED
${LIBGLESV2_SRC_FILES}
)
set_target_properties(libGLESv2 PROPERTIES
POSITION_INDEPENDENT_CODE 1
FOLDER "OpenGL"
PREFIX ""
LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
target_include_directories(libGLESv2
PRIVATE
".."
"../.."
)
target_compile_definitions(libGLESv2
PRIVATE
"GL_GLEXT_PROTOTYPES"
"GL_API="
"GL_APICALL="
"GLAPI="
"NO_SANITIZE_FUNCTION="
)
target_compile_options(libGLESv2
PRIVATE
${ROOT_PROJECT_COMPILE_OPTIONS}
)
target_link_libraries(libGLESv2
PRIVATE
libGLESCommon
gl_swiftshader_core
GLCompiler
${ROOT_PROJECT_LINK_LIBRARIES}
)
if (ANDROID)
set_target_properties(libGLESv2 PROPERTIES SUFFIX "_swiftshader.so")
endif ()
set_shared_library_export_map(libGLESv2 ${CMAKE_CURRENT_SOURCE_DIR})
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(LIB_PREFIX "lib64")
else()
set(LIB_PREFIX "lib")
endif()
add_custom_command(
TARGET libGLESv2
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment