From c1ea096d31fb6c3a8cb48e47628fefd36678f5d4 Mon Sep 17 00:00:00 2001 From: nick black Date: Mon, 18 Jan 2021 17:37:17 -0500 Subject: [PATCH] set CMAKE_LINK_WHAT_YOU_USE to ON #1300 --- CMakeLists.txt | 11 +++++++---- src/media/ffmpeg.cpp | 4 ++-- src/{view/view.cpp => player/play.cpp} | 0 3 files changed, 9 insertions(+), 6 deletions(-) rename src/{view/view.cpp => player/play.cpp} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 04018397c..9aeb6841a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,9 @@ set(CMAKE_C_STANDARD 11) set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_VISIBILITY_PRESET hidden) +# Passes -Wl,-no-as-needed to linker steps, necessary to reliably link +# libnotcurses.so into executables...for now. This is grotesque. FIXME +set(CMAKE_LINK_WHAT_YOU_USE ON) include(CTest) include(GNUInstallDirs) @@ -582,15 +585,15 @@ target_include_directories(ncls include "${PROJECT_BINARY_DIR}/include" ) -target_link_libraries(ncls +tarGET_Link_libraries(ncls PRIVATE - notcurses++ + notcurses ) ############################################################################ # ncplayer -file(GLOB VIEWSRCS CONFIGURE_DEPENDS src/view/*.cpp) -add_executable(ncplayer ${VIEWSRCS} ${COMPATSRC}) +file(GLOB PLAYERSRCS CONFIGURE_DEPENDS src/player/*.cpp) +add_executable(ncplayer ${PLAYERSRCS} ${COMPATSRC}) target_include_directories(ncplayer PRIVATE include diff --git a/src/media/ffmpeg.cpp b/src/media/ffmpeg.cpp index 1bba247d2..2e608fe39 100644 --- a/src/media/ffmpeg.cpp +++ b/src/media/ffmpeg.cpp @@ -41,7 +41,7 @@ typedef struct ncvisual_details { #define IMGALLOCALIGN 32 -static void inject_implementation(void) __attribute__ ((constructor)); +void inject_implementation(void) __attribute__ ((constructor)); /*static void print_frame_summary(const AVCodecContext* cctx, const AVFrame* f) { @@ -583,7 +583,7 @@ const static ncvisual_implementation ffmpeg_impl = { .canopen_videos = true, }; -static void inject_implementation(void){ +void inject_implementation(void){ notcurses_set_ncvisual_implementation(&ffmpeg_impl); } diff --git a/src/view/view.cpp b/src/player/play.cpp similarity index 100% rename from src/view/view.cpp rename to src/player/play.cpp