diff --git a/CMakeLists.txt b/CMakeLists.txt index 308b3d9f..8467925e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.8) +cmake_minimum_required (VERSION 3.8) project ("cpymo") @@ -12,8 +12,12 @@ add_definitions (-DENABLE_TEXT_EXTRACT_COPY_TO_CLIPBOARD) add_definitions (-DENABLE_EXIT_CONFIRM) add_definitions (-DLEAKCHECK) add_definitions (-DLIMIT_WINDOW_SIZE_TO_SCREEN) - -find_package (FFMPEG REQUIRED) +if(MSVC OR WIN32) + find_package(FFMPEG REQUIRED) +else() +find_package(PkgConfig REQUIRED) +pkg_check_modules(FFMPEG REQUIRED libavformat libavcodec libavutil libswscale libswresample) +endif() if (FFMPEG_FOUND) else () diff --git a/cpymo-backends/sdl2/CMakeLists.txt b/cpymo-backends/sdl2/CMakeLists.txt index c747cdb7..af11bda3 100644 --- a/cpymo-backends/sdl2/CMakeLists.txt +++ b/cpymo-backends/sdl2/CMakeLists.txt @@ -3,27 +3,39 @@ cmake_minimum_required (VERSION 3.8) include_directories("../../cpymo") find_package (SDL2 CONFIG REQUIRED) -find_package (FFMPEG REQUIRED) + +if (MSVC OR WIN32) + find_package (FFMPEG REQUIRED) +endif() + +include_directories(${FFMPEG_INCLUDE_DIRS}) file (GLOB CPYMO_BACKEND_SRC "*.h" "*.c") add_executable (cpymo ${CPYMO_BACKEND_SRC}) -target_link_libraries(cpymo PRIVATE - SDL2::SDL2 - SDL2::SDL2main - cpymolib - ${FFMPEG_LIBRARIES}) - +target_link_libraries(cpymo PRIVATE + SDL2::SDL2 + SDL2::SDL2main + cpymolib + ${FFMPEG_LIBRARIES} +) -if (VCPKG_LIBRARY_LINKAGE EQUAL "static") - target_link_libraries(cpymo PRIVATE SDL2::SDL2-static) +if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + target_link_libraries(cpymo PRIVATE SDL2::SDL2-static) endif () if (CMAKE_SYSTEM_NAME MATCHES "Windows") - target_sources (cpymo PRIVATE "pymo-icon-windows.rc") + target_sources (cpymo PRIVATE "pymo-icon-windows.rc") elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") - set(CMAKE_C_FLAGS "-D__LINUX__") - target_link_libraries(cpymo PRIVATE X11) -endif () + target_compile_definitions(cpymo PRIVATE __LINUX__) + + execute_process( + COMMAND pkg-config --libs --static libavformat libavcodec libavutil libswscale libswresample + OUTPUT_VARIABLE FFMPEG_STATIC_LIBS_STR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + separate_arguments(FFMPEG_FULL_LIBS_LIST UNIX_COMMAND "${FFMPEG_STATIC_LIBS_STR}") + target_link_libraries(cpymo PRIVATE X11 ${FFMPEG_FULL_LIBS_LIST}) +endif () diff --git a/cpymo-tool/cpymo_tool_convert.c b/cpymo-tool/cpymo_tool_convert.c index 164e0a42..81b315c3 100644 --- a/cpymo-tool/cpymo_tool_convert.c +++ b/cpymo-tool/cpymo_tool_convert.c @@ -7,7 +7,7 @@ #include #elif defined __APPLE__ #include -#else +#elif defined(__linux__) && (defined(__x86_64__) || defined(__i386__)) #include #endif #include