aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt13
-rw-r--r--src/libui_sdl/OSD.cpp4
-rw-r--r--src/libui_sdl/libui/unix/CMakeLists.txt20
3 files changed, 15 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e3f9cb6..aa33d4b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,18 @@ endif()
if(ENABLE_LTO)
add_compile_options(-O3 -flto)
add_link_options(-flto)
- set(CMAKE_AR "gcc-ar")
+
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
+ find_program(LLD ld.lld)
+ if (LLD)
+ add_link_options(-fuse-ld=lld)
+ else()
+ add_link_options(-fuse-linker-plugin)
+ endif()
+ set(CMAKE_AR "llvm-ar")
+ else()
+ set(CMAKE_AR "gcc-ar")
+ endif()
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_C_ARCHIVE_FINISH true)
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
diff --git a/src/libui_sdl/OSD.cpp b/src/libui_sdl/OSD.cpp
index a01e39b..02418cc 100644
--- a/src/libui_sdl/OSD.cpp
+++ b/src/libui_sdl/OSD.cpp
@@ -419,8 +419,8 @@ void Update(bool opengl, uiAreaDrawParams* params)
item.DrawBitmapLoaded = true;
}
- uiRect rc_src = {0, 0, item.Width, item.Height};
- uiRect rc_dst = {kOSDMargin, y, item.Width, item.Height};
+ uiRect rc_src = {0, 0, (int) item.Width, (int) item.Height};
+ uiRect rc_dst = {kOSDMargin, (int) y, (int) item.Width, (int) item.Height};
uiDrawBitmapDraw(params->Context, item.DrawBitmap, &rc_src, &rc_dst, 0);
}
diff --git a/src/libui_sdl/libui/unix/CMakeLists.txt b/src/libui_sdl/libui/unix/CMakeLists.txt
index 39f6c0a..1f4ab86 100644
--- a/src/libui_sdl/libui/unix/CMakeLists.txt
+++ b/src/libui_sdl/libui/unix/CMakeLists.txt
@@ -54,27 +54,9 @@ set(_LIBUI_INCLUDEDIRS _LIBUI_INCLUDEDIRS PARENT_SCOPE)
set(_LIBUINAME libui PARENT_SCOPE)
if(NOT BUILD_SHARED_LIBS)
- set(_LIBUINAME libui-temporary PARENT_SCOPE)
+ # set(_LIBUINAME libui-temporary PARENT_SCOPE)
endif()
macro(_handle_static)
- set_target_properties(${_LIBUINAME} PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
- set(_aname $<TARGET_FILE:${_LIBUINAME}>)
- set(_oname libui-combined.o)
- add_custom_command(
- OUTPUT ${_oname}
- DEPENDS ${_LIBUINAME}
- COMMAND
- ${CMAKE_LINKER} -r --whole-archive ${_aname} -o ${_oname}
- COMMAND
- objcopy --localize-hidden ${_oname}
- COMMENT "Removing hidden symbols")
- add_library(libui STATIC ${_oname})
- # otherwise cmake won't know which linker to use
- set_target_properties(libui PROPERTIES
- LINKER_LANGUAGE C)
- set(_aname)
- set(_oname)
endmacro()
# TODO the other variables don't work?