X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=extras%2Fbuildsystem%2Fcmake%2FCMakeLists%2Fsrc_CMakeLists.txt;h=5d84c5bff3a584bfb9a9b9f57f8993cf0f422ce6;hb=01a95e76381eebe5a99a6feefc6a9cfff770962e;hp=49c473e90c8cd4f7525b013db151e1db37caec20;hpb=d93f3dd1d5bf5676f75ec0bb571e94e64028bca9;p=vlc diff --git a/extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt b/extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt index 49c473e90c..5d84c5bff3 100644 --- a/extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt +++ b/extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt @@ -1,16 +1,13 @@ -include_directories( . ) add_definitions(-Dasm=__asm__ -D_INTL_REDIRECT_MACROS) add_definitions(-DLOCALEDIR=\\"${CMAKE_INSTALL_PREFIX}/locale\\") -add_definitions(-DDATA_PATH=\\"${CMAKE_INSTALL_PREFIX}/share/vlc\\") add_definitions(-DPLUGIN_PATH=\\"${CMAKE_INSTALL_PREFIX}/lib/vlc\\") +add_definitions(-DDATA_PATH=\\"${CMAKE_INSTALL_PREFIX}/share/vlc\\") # vlc add_executable(vlc vlc.c) target_link_libraries(vlc libvlc) -install_programs(/bin FILES vlc) - # libvlc set( SOURCES_libvlc_beos misc/beos_specific.cpp ) @@ -20,111 +17,112 @@ set( SOURCES_libvlc_dirent extras/dirent.c ) set( SOURCES_libvlc_getopt misc/getopt.c misc/getopt.h misc/getopt1.c ) set( SOURCES_libvlc_common libvlc.c - libvlc-common.c - libvlc.h - libvlc-module.c - interface/interface.h - interface/interface.c - interface/intf_eject.c - interface/interaction.c - playlist/playlist_internal.h - playlist/thread.c - playlist/control.c - playlist/engine.c - playlist/sort.c - playlist/loadsave.c - playlist/tree.c - playlist/item.c - playlist/search.c - playlist/services_discovery.c - input/item.c - input/access.c - input/clock.c - input/control.c - input/decoder.c - input/decoder_synchro.c - input/demux.c - input/es_out.c - input/input.c - input/meta.c - input/input_internal.h - input/vlm_internal.h - input/stream.c - input/mem_stream.c - input/subtitles.c - input/var.c - video_output/video_output.c - video_output/vout_pictures.c - video_output/vout_pictures.h - video_output/video_text.c - video_output/video_widgets.c - video_output/vout_subpictures.c - video_output/vout_intf.c - audio_output/aout_internal.h - audio_output/common.c - audio_output/dec.c - audio_output/filters.c - audio_output/input.c - audio_output/mixer.c - audio_output/output.c - audio_output/intf.c - stream_output/stream_output.c - stream_output/stream_output.h - stream_output/announce.c - stream_output/profiles.c - stream_output/sap.c - stream_output/sdp.c - osd/osd.c - osd/osd_text.c - osd/osd_widgets.c - network/acl.c - network/getaddrinfo.c - network/io.c - network/error.c - network/tcp.c - network/udp.c - network/httpd.c - network/rootwrap.c - network/tls.c - network/poll.c - text/charset.c - text/strings.c - text/unicode.c - text/wincp.c - text/iso_lang.c - text/iso-639_def.h - misc/md5.c - misc/rand.c - misc/mtime.c - misc/block.c - modules/builtin.h - modules/modules.h - modules/modules.c - modules/cache.c - modules/entry.c - modules/os.c - misc/threads.c - misc/stats.c - misc/cpu.c - config/configuration.h - config/core.c - config/chain.c - config/file.c - config/cmdline.c - misc/events.c - misc/image.c - misc/messages.c - misc/objects.c - misc/variables.h - misc/variables.c - misc/error.c - misc/update.c - misc/revision.c - input/vlm.c - misc/xml.c - misc/devices.c - extras/libc.c - ${CMAKE_SOURCE_DIR}/include/vlc_about.h ) + libvlc-common.c + libvlc.h + libvlc-module.c + interface/interface.c + interface/intf_eject.c + interface/interaction.c + playlist/playlist_internal.h + playlist/thread.c + playlist/control.c + playlist/engine.c + playlist/sort.c + playlist/loadsave.c + playlist/tree.c + playlist/item.c + playlist/search.c + playlist/services_discovery.c + input/item.c + input/access.c + input/clock.c + input/control.c + input/decoder.c + input/decoder_synchro.c + input/demux.c + input/es_out.c + input/input.c + input/meta.c + input/input_internal.h + input/vlm_internal.h + input/stream.c + input/mem_stream.c + input/subtitles.c + input/var.c + video_output/video_output.c + video_output/vout_pictures.c + video_output/vout_pictures.h + video_output/video_text.c + video_output/video_widgets.c + video_output/vout_subpictures.c + video_output/vout_intf.c + audio_output/aout_internal.h + audio_output/common.c + audio_output/dec.c + audio_output/filters.c + audio_output/input.c + audio_output/mixer.c + audio_output/output.c + audio_output/intf.c + stream_output/stream_output.c + stream_output/stream_output.h + stream_output/announce.c + stream_output/profiles.c + stream_output/sap.c + stream_output/sdp.c + osd/osd.c + osd/osd_text.c + osd/osd_widgets.c + network/acl.c + network/getaddrinfo.c + network/io.c + network/error.c + network/tcp.c + network/udp.c + network/httpd.c + network/rootwrap.c + network/tls.c + network/poll.c + text/charset.c + text/strings.c + text/unicode.c + text/wincp.c + text/iso_lang.c + text/iso-639_def.h + misc/action.c + misc/md5.c + misc/rand.c + misc/mtime.c + misc/block.c + ${CMAKE_BINARY_DIR}/src/modules/builtin.h + modules/modules.h + modules/modules.c + modules/cache.c + modules/entry.c + modules/os.c + misc/threads.c + misc/stats.c + misc/cpu.c + config/configuration.h + config/core.c + config/chain.c + config/file.c + config/intf.c + config/cmdline.c + misc/events.c + misc/image.c + misc/messages.c + misc/objects.c + misc/variables.h + misc/variables.c + misc/error.c + misc/update.c + ${CMAKE_BINARY_DIR}/src/misc/revision.c + input/vlm.c + misc/xml.c + misc/devices.c + extras/libc.c + ${CMAKE_BINARY_DIR}/include/vlc_about.h ) set( SOURCES_libvlc ${SOURCES_libvlc_common} ) @@ -133,10 +131,16 @@ if(SYS_DARWIN) endif(SYS_DARWIN) add_library(libvlc SHARED ${SOURCES_libvlc}) -install_targets(/lib libvlc) -set_target_properties(libvlc PROPERTIES LINK_FLAGS - "-z defs --as-needed -lm ${LIBRT} ${LIBICONV} ${CMAKE_THREAD_LIBS_INIT}") -set_target_properties(libvlc PROPERTIES SOVERSION 1.0.0) + +set_target_properties(libvlc PROPERTIES + OUTPUT_NAME vlc + SOVERSION 1 VERSION 1.0.0) + +if(UPDATE_CHECK) +target_link_libraries(libvlc ${LIBM} ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES} "-lgcrypt") +else(UPDATE_CHECK) +target_link_libraries(libvlc ${LIBM} ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES}) +endif(UPDATE_CHECK) # libvlc-control set( SOURCES_libvlc_control @@ -147,13 +151,12 @@ set( SOURCES_libvlc_control control/vlm.c control/video.c control/audio.c - control/dynamic_media_list.c control/event.c control/flat_media_list_view.c control/hierarchical_media_list_view.c control/hierarchical_node_media_list_view.c - control/media_descriptor.c - control/media_instance.c + control/media.c + control/media_player.c control/media_list.c control/media_list_path.h control/media_list_player.c @@ -163,18 +166,24 @@ set( SOURCES_libvlc_control control/mediacontrol_core.c control/mediacontrol_util.c control/mediacontrol_audio_video.c - control/media_discoverer.c - control/tag_query.c ) + control/media_discoverer.c ) add_library(libvlc-control SHARED ${SOURCES_libvlc_control}) -install_targets(/lib libvlc-control) + +set_target_properties(libvlc-control PROPERTIES OUTPUT_NAME vlc-control) +set_target_properties(libvlc-control PROPERTIES SOVERSION 0) +set_target_properties(libvlc PROPERTIES VERSION 0.0.0) + target_link_libraries(libvlc-control libvlc) ########################################################## -# Libraries +# Install + +install(TARGETS libvlc libvlc-control DESTINATION lib) +install(TARGETS vlc DESTINATION bin) -# iconv -target_link_libraries(libvlc ${LIBICONV}) +########################################################## +# Libraries # Carbon if(APPLE) @@ -182,20 +191,21 @@ if(APPLE) target_link_libraries(libvlc ${CARBON_FRAMEWORK}) endif(APPLE) -target_link_libraries(libvlc ${Dlopen_LIBRARY}) - ########################################################## # revision.c -set(rev "${CMAKE_CURRENT_SOURCE_DIR}/misc/revision.c") +set(rev "${CMAKE_BINARY_DIR}/src/misc/revision.c") +exec_program(dirname ARGS ${rev} OUTPUT_VARIABLE rev_dir) + add_custom_command( OUTPUT ${rev} -COMMAND rm -f ${rev} ${rev}.tmp -COMMAND echo "/* AUTOGENERATED FILE - DO NOT EDIT */" > ${rev}.tmp -COMMAND printf "const char psz_vlc_changeset[] = \"" >> ${rev}.tmp -COMMAND sh -c "printf `LANG=C\ svnversion\ ${CMAKE_SOURCE_DIR}\ ||\ echo\ exported`" >> ${rev}.tmp -COMMAND echo "\";" >> ${rev}.tmp -COMMAND mv -f ${rev}.tmp ${rev} +COMMAND rm -f ${rev} ${rev}.tmp +COMMAND mkdir -p ${rev_dir} +COMMAND sh -c "echo '/* AUTOGENERATED FILE - DO NOT EDIT */' > ${rev}.tmp" +COMMAND sh -c "printf 'const char psz_vlc_changeset[] = \"' >> ${rev}.tmp" +COMMAND sh -c "printf `LANG=C svnversion ${CMAKE_SOURCE_DIR} || printf \"exported\"` >> ${rev}.tmp" +COMMAND sh -c "echo '\";' >> ${rev}.tmp" +COMMAND mv -f ${rev}.tmp ${rev} VERBATIM ) set(rev) @@ -204,44 +214,74 @@ set(rev) # builtin.h # No real use for this one, we just used to need it. # We should really remove that. -set(builtin "${CMAKE_CURRENT_SOURCE_DIR}/modules/builtin.h") +set(builtin "${CMAKE_BINARY_DIR}/src/modules/builtin.h") +exec_program(dirname ARGS ${builtin} OUTPUT_VARIABLE builtin_dir) add_custom_command( OUTPUT ${builtin} -COMMAND echo "/* Auto generated by ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt */" > ${builtin} -COMMAND echo "int vlc_entry__main( module_t* );" >> ${builtin} -COMMAND echo "#define ALLOCATE_ALL_BUILTINS() do {} while(0)" >> ${builtin} +COMMAND mkdir -p ${builtin_dir} +COMMAND sh -c "echo '/* Auto generated by ${CMAKE_CURRENT_BUILD_DIR}/CMakeLists.txt */' > ${builtin}" +COMMAND sh -c "echo 'int vlc_entry__main( module_t* );' >> ${builtin}" +COMMAND sh -c "echo '#define ALLOCATE_ALL_BUILTINS() do {} while(0)' >> ${builtin}" VERBATIM ) set(should) ########################################################## # vlc_about.h -set(about "${CMAKE_SOURCE_DIR}/include/vlc_about.h") +set(about "${CMAKE_BINARY_DIR}/include/vlc_about.h") +exec_program(dirname ARGS ${about} OUTPUT_VARIABLE about_dir) add_custom_command( OUTPUT ${about} -COMMAND rm -f -- "${about}.tmp" -COMMAND mkdir -p -- ../include -COMMAND echo "/* Automatically generated file - DO NOT EDIT */" > "${about}.tmp" -COMMAND echo "static const char psz_license[] =" >> "${about}.tmp" -COMMAND cat ${CMAKE_SOURCE_DIR}/COPYING | sed s/\"/''/g | awk "{ print \"\\\"\"$0\"\\\\n\\\"\" }" >> "${about}.tmp" -COMMAND echo ";" >> "${about}.tmp" -COMMAND echo "static const char psz_thanks[] =" >> "${about}.tmp" -COMMAND grep -v '$$Id:' ${CMAKE_SOURCE_DIR}/THANKS | sed "s/\"/''/g" | awk "{ print \"\\\"\"$0\"\\\\n\\\"\" }"|sed "s/\"<.*.> \"//" >> "${about}.tmp" -COMMAND echo ";" >> "${about}.tmp" -COMMAND echo "static const char psz_authors[] =" >> "${about}.tmp" -COMMAND grep N: ${CMAKE_SOURCE_DIR}/AUTHORS | cut -d "\ " -f 2- | sed "s/\"/''/g" | awk "{ print \"\\\"\"$0\"\\\\n\\\"\" }" >> "${about}.tmp" -COMMAND echo ";" >> "${about}.tmp" -COMMAND mv -f -- "${about}.tmp" "${about}" +COMMAND rm -f "${about}.tmp" +COMMAND mkdir -p ${about_dir} +COMMAND sh -c "echo '/* Automatically generated file - DO NOT EDIT */' > ${about}.tmp" +COMMAND sh -c "echo 'static const char psz_license[] =' >> ${about}.tmp" +COMMAND sh -c "cat ${CMAKE_SOURCE_DIR}/COPYING | sed s/\\\"/''/g | awk '{ print \"\\\"\"$0\"\\\\n\\\"\" }' >> ${about}.tmp" +COMMAND sh -c "echo ';' >> ${about}.tmp" +COMMAND sh -c "echo 'static const char psz_thanks[] =' >> ${about}.tmp" +COMMAND sh -c "grep -v '$$Id:' ${CMAKE_SOURCE_DIR}/THANKS | sed 's/\"/''/g' | awk '{ print \"\\\"\"$0\"\\\\n\\\"\" }'|sed 's/\"<.*.> \"//' >> ${about}.tmp" +COMMAND sh -c "echo ';' >> ${about}.tmp" +COMMAND sh -c "echo 'static const char psz_authors[] =' >> ${about}.tmp" +COMMAND sh -c "grep N: ${CMAKE_SOURCE_DIR}/AUTHORS | cut -d '\ ' -f 2- | sed 's/\"/''/g' | awk '{ print \"\\\"\"$0\"\\\\n\\\"\" }' >> ${about}.tmp" +COMMAND sh -c "echo ';' >> ${about}.tmp" +COMMAND sh -c "mv -f -- ${about}.tmp ${about}" DEPENDS ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_SOURCE_DIR}/THANKS ${CMAKE_SOURCE_DIR}/COPYING -VERBATIM) +VERBATIM +) set(about) + ########################################################## # SET_TARGET_PROPERTIES -set_target_properties(libvlc libvlc-control PROPERTIES PREFIX "") -set_target_properties(libvlc-control PROPERTIES LINK_FLAGS "-z defs --as-needed") +# FIXME: Should probably be autodetected in configure? +if(NOT APPLE) + set(LINK_FLAGS "-z defs --as-needed") +endif(NOT APPLE) + +target_link_libraries(libvlc "${CMAKE_THREAD_LIBS_INIT}") +target_link_libraries(libvlc-control "${CMAKE_THREAD_LIBS_INIT}") + set_target_properties(libvlc libvlc-control vlc PROPERTIES COMPILE_FLAGS - "-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes" ) + "-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes -I${CMAKE_BINARY_DIR}/src -I${CMAKE_BINARY_DIR}/include" ) + +########################################################## +# Tests + +add_executable(test_i18n_atof test/i18n_atof.c) +add_executable(test_url test/url.c) +add_executable(test_utf8 test/utf8.c) +add_executable(test_dictionary test/dictionary.c) + +target_link_libraries(test_i18n_atof libvlc) +target_link_libraries(test_url libvlc) +target_link_libraries(test_utf8 libvlc) +target_link_libraries(test_dictionary libvlc) + +add_test(test_i18n_atof ${CMAKE_CURRENT_BINARY_DIR}/test_i18n_atof) +add_test(test_url ${CMAKE_CURRENT_BINARY_DIR}/test_url) +add_test(test_utf8 ${CMAKE_CURRENT_BINARY_DIR}/test_utf8) +add_test(test_dictionary ${CMAKE_CURRENT_BINARY_DIR}/test_dictionary) +