Em 24-10-2015 14:49, Tim Tassonis escreveu:
> Hi all
>
> I just did compiled / installed x265 as in the book, and then ffmepg
> with --enable-libx265, so it would pick up the x265 stuff.
>
> While this went ok, I noticed that ffmpeg will link to the static
> libx265 library instead of the shared one, as both are produced and
> installed. Moving libx265.a away from /usr/lib before the ffmpeg
> build/install fixed that.
>
> I just wondered if there is a cleaner way to achieve that? I'm not
> really familiar with cmake, the autoconf usually lets you specify
> --disable-static on configure.
Thanks for the info.
To find the options with cmake, run:
cmake -LH
Normally you are inside the source, where CMakeLists.txt is.
With mariadb:
$ cd mariadb-
$ cmake . -LH
I wrote that, because the case of x264 is a little peculiar: the source
with CMakeLists.txt is not under x264_1.8, but under "source", so that:
$ cd x264_1.8
$ cmake source -LH
Unfortunately there is no ENABLE_STATIC option, so we have to do either
what you have just done, or use a patch to create the option. I have
submitted that patch and modified the x264 page to use it should be in
svn tomorrow.
Attached is the patch, if you wish to try it before that.
Use
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_STATIC=OFF ../source
>
> Kind regards
> Tim
--
[]s,
Fernando, aka SÃsifo
Submitted By:Fernando de Oliveira
Date:2015-10-24
Initial Package Version: 1.8
Upstream Status: not submitted
Origin: https://bitbucket.org/TimothyGu/x265/commits/a9aacc5a16116f1c663d1fcb62ad9a0985043b94/raw/
https://bitbucket.org/TimothyGu/x265/commits/578c5ef3dff46db38e7c36a8d3c6198a65c9746b/raw/
Description: Add ENABLE_STATIC:BOOL=ON, so that static lib
can be disabled.
--- x265_11047/source/CMakeLists.txt.orig 2015-10-08 07:01:36.0 -0300
+++ x265_11047/source/CMakeLists.txt 2015-10-24 17:10:57.919861668 -0300
@@ -419,16 +419,21 @@
endif()
source_group(ASM FILES ${YASM_SRCS})
-add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS})
-if(NOT MSVC)
-set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265)
-endif()
-if(EXTRA_LIB)
-target_link_libraries(x265-static ${EXTRA_LIB})
-endif()
-install(TARGETS x265-static
-LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
+
+option(ENABLE_STATIC "Build static library" ON)
+if(ENABLE_STATIC)
+add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS})
+if(NOT MSVC)
+set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265)
+endif()
+if(EXTRA_LIB)
+target_link_libraries(x265-static ${EXTRA_LIB})
+endif()
+install(TARGETS x265-static
+LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
+endif(ENABLE_STATIC)
+
install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
if(CMAKE_RC_COMPILER)
@@ -490,6 +495,10 @@
endif()
endif()
+if(NOT ENABLE_STATIC AND NOT ENABLE_SHARED)
+message(FATAL_ERROR "Neither static nor shared libraries are enabled.")
+endif()
+
if(X265_LATEST_TAG)
# convert lists of link libraries into -lstdc++ -lm etc..
foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
@@ -551,12 +560,14 @@
else()
add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} ${X265_RC_FILE}
${ExportDefs} x265.cpp x265.h x265cli.h x265-extras.h x265-extras.cpp)
-if(WIN32 OR NOT ENABLE_SHARED OR INTEL_CXX)
-# The CLI cannot link to the shared library on Windows, it
-# requires internal APIs not exported from the DLL
-target_link_libraries(cli x265-static ${PLATFORM_LIBS})
-else()
+if(WIN32 AND NOT ENABLE_STATIC)
+message(FATAL_ERROR "The CLI cannot link to shared library on Windows as it requires internal APIs not exported from the DLL.")
+elseif(INTEL_CXX AND NOT ENABLE_STATIC)
+message(FATAL_ERROR "The CLI cannot link to shared library with Intel C++ Compiler as it requires internal APIs not exported from the shared library.")
+elseif(ENABLE_SHARED)
target_link_libraries(cli x265-shared ${PLATFORM_LIBS})
+else()
+target_link_libraries(cli x265-static ${PLATFORM_LIBS})
endif()
endif()
set_target_properties(cli PROPERTIES OUTPUT_NAME x265)
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page