vlc/extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt

311 lines
9.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

add_definitions(-Dasm=__asm__ -D_INTL_REDIRECT_MACROS)
add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/locale")
add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_PREFIX}/etc")
add_definitions(-DPLUGIN_PATH="${CMAKE_INSTALL_PREFIX}/lib/vlc")
add_definitions(-DDATA_PATH="${CMAKE_INSTALL_PREFIX}/share/vlc")
# vlc
if(SYS_WIN32)
add_executable(vlc winvlc.c)
else(SYS_WIN32)
add_executable(vlc vlc.c)
endif(SYS_WIN32)
target_link_libraries(vlc libvlccore libvlc)
# libvlccore
set( SOURCES_libvlccore_beos misc/beos_specific.cpp )
set( SOURCES_libvlccore_darwin misc/darwin_specific.c )
set( SOURCES_libvlccore_win32 misc/win32_specific.c )
set( SOURCES_libvlccore_linux misc/linux_specific.c )
set( SOURCES_libvlccore_other misc/not_specific.c )
set( SOURCES_libvlccore_dirent extras/dirent.c )
set( SOURCES_libvlccore_getopt misc/getopt.c misc/getopt.h misc/getopt1.c )
set( SOURCES_libvlccore_common
libvlc.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/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/dirs.c
config/chain.c
config/file.c
config/intf.c
config/cmdline.c
misc/events.c
misc/image.c
misc/messages.c
misc/mime.c
misc/objects.c
misc/variables.h
misc/variables.c
misc/error.c
misc/update.h
misc/update.c
${CMAKE_BINARY_DIR}/src/misc/revision.c
input/vlm.c
input/vlmshell.c
misc/xml.c
misc/devices.c
version.c
extras/libc.c
${CMAKE_BINARY_DIR}/include/vlc_about.h )
set( SOURCES_libvlccore ${SOURCES_libvlccore_common} )
if(SYS_DARWIN)
set( SOURCES_libvlccore ${SOURCES_libvlccore} ${SOURCES_libvlccore_darwin} )
elseif(SYS_BEOS)
set( SOURCES_libvlccore ${SOURCES_libvlccore} ${SOURCES_libvlccore_beos} )
elseif(SYS_WIN32)
set( SOURCES_libvlccore ${SOURCES_libvlccore} ${SOURCES_libvlccore_win32} )
elseif(SYS_LINUX)
set( SOURCES_libvlccore ${SOURCES_libvlccore} ${SOURCES_libvlccore_linux} )
else(SYS_DARWIN)
set( SOURCES_libvlccore ${SOURCES_libvlccore} ${SOURCES_libvlccore_other} )
endif(SYS_DARWIN)
add_library(libvlccore SHARED ${SOURCES_libvlccore})
set_target_properties(libvlccore PROPERTIES
OUTPUT_NAME vlccore
SOVERSION 0 VERSION 0.0.0)
if(UPDATE_CHECK)
target_link_libraries(libvlccore ${LIBM} ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES} "-lgcrypt")
else(UPDATE_CHECK)
target_link_libraries(libvlccore ${LIBM} ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES})
endif(UPDATE_CHECK)
# libvlc
set( SOURCES_libvlc
control/libvlc_internal.h
control/core.c
control/log.c
control/playlist.c
control/vlm.c
control/video.c
control/audio.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.c
control/media_player.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 )
add_library(libvlc SHARED ${SOURCES_libvlc})
set_target_properties(libvlc PROPERTIES OUTPUT_NAME vlc)
set_target_properties(libvlc PROPERTIES SOVERSION 2)
set_target_properties(libvlccore PROPERTIES VERSION 0.0.0)
set_source_files_properties(${SOURCES_libvlc} PROPERTIES COMPILE_FLAGS -DMODULE_STRING=\\"control\\")
set_source_files_properties(${SOURCES_libvlccore} PROPERTIES COMPILE_FLAGS -DMODULE_STRING=\\"main\\")
target_link_libraries(libvlc libvlccore)
##########################################################
# Install
install(TARGETS libvlccore libvlc DESTINATION lib)
install(TARGETS vlc DESTINATION bin)
##########################################################
# Libraries
# Carbon
if(APPLE)
find_library(CARBON_FRAMEWORK Carbon)
target_link_libraries(libvlccore ${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 git --git-dir=${CMAKE_SOURCE_DIR}/.git show-ref -s HEAD 2>/dev/null || 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)
##########################################################
# 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 ${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
# FIXME: Should probably be autodetected in configure?
# FIXME: This breaks on FreeBSD also
#if(NOT APPLE)
# set(LINK_FLAGS "-z defs --as-needed")
#endif(NOT APPLE)
target_link_libraries(libvlccore "${CMAKE_THREAD_LIBS_INIT}")
target_link_libraries(libvlc "${CMAKE_THREAD_LIBS_INIT}")
set_target_properties(libvlccore libvlc 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_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 libvlccore)
target_link_libraries(test_url libvlccore)
target_link_libraries(test_utf8 libvlccore)
target_link_libraries(test_dictionary libvlccore)
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)