-include_directories( . )
-add_definitions(-Dasm=__asm__ -D_INTL_REDIRECT_MACROS -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4)
+add_definitions(-Dasm=__asm__ -D_INTL_REDIRECT_MACROS)
+add_definitions(-DLOCALEDIR=\\"${CMAKE_INSTALL_PREFIX}/locale\\")
+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 )
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/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 )
+ 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
+ ${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} )
endif(SYS_DARWIN)
add_library(libvlc SHARED ${SOURCES_libvlc})
-install_targets(/lib libvlc)
+
+set_target_properties(libvlc PROPERTIES
+ OUTPUT_NAME vlc
+ SOVERSION 1 VERSION 1.0.0)
+
+target_link_libraries(libvlc ${LIBM} ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES})
+
+
+# libvlc-control
+set( SOURCES_libvlc_control
+ control/libvlc_internal.h
+ control/core.c
+ control/log.c
+ control/playlist.c
+ 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_list.c
+ control/media_list_path.h
+ control/media_list_player.c
+ control/media_list_view.c
+ control/media_library.c
+ control/mediacontrol_internal.h
+ control/mediacontrol_core.c
+ control/mediacontrol_util.c
+ control/mediacontrol_audio_video.c
+ control/media_discoverer.c
+ control/tag_query.c )
+
+add_library(libvlc-control SHARED ${SOURCES_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 ${HAVE_ICONV})
+##########################################################
+# Libraries
# Carbon
-find_library(CARBON_FRAMEWORK Carbon)
-target_link_libraries(libvlc ${CARBON_FRAMEWORK})
+if(APPLE)
+ find_library(CARBON_FRAMEWORK Carbon)
+ target_link_libraries(libvlc ${CARBON_FRAMEWORK})
+endif(APPLE)
+
+##########################################################
+# 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 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)
+
+##########################################################
+# builtin.h
+# No real use for this one, we just used to need it.
+# We should really remove that.
+set(builtin "${CMAKE_BINARY_DIR}/src/modules/builtin.h")
+exec_program(dirname ARGS ${builtin} OUTPUT_VARIABLE builtin_dir)
+
+add_custom_command(
+OUTPUT ${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)
##########################################################
-# version.c
+# 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 ${CMAKE_CURRENT_BINARY_DIR}/foo.c
-COMMAND sh "rm -f misc/revision.c misc/revision.c.tmp &&
- echo '/* AUTOGENERATED FILE - DO NOT EDIT */' > misc/revision.c.tmp &&
- REVISION=\"$$\(LANG=C svnversion \\\"$\(top_srcdir)\\\" 2>/dev/null || echo exported)\" ; &&
- echo \"const char psz_vlc_changeset[] = \\\"$$REVISION\\\";\" >> misc/revision.c.tmp &&
- mv -f misc/revision.c.tmp misc/revision.c"
+OUTPUT ${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
)
+set(about)
+
##########################################################
# SET_TARGET_PROPERTIES
-set_target_properties(libvlc vlc PROPERTIES COMPILE_FLAGS
- "-std=c99 -I. -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes" )
+# 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 -I${CMAKE_BINARY_DIR}/src -I${CMAKE_BINARY_DIR}/include" )
+
+##########################################################
+# Tests
+
+add_executable(test_testapi control/testapi.c)
+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_testapi libvlc-control)
+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_control ${CMAKE_CURRENT_BINARY_DIR}/test_testapi)
+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)
+