]> git.sesse.net Git - vlc/blobdiff - extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt
cmake: fix src/ building
[vlc] / extras / buildsystem / cmake / CMakeLists / src_CMakeLists.txt
index 5a335717cdb2ff6e01938e5aee5694ba6d07b9cd..b2a5a8e3d80a5383f87310f49f4a6c192aad71ef 100644 (file)
@@ -1,29 +1,28 @@
-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(-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
 add_executable(vlc vlc.c)
-target_link_libraries(vlc libvlc)
+target_link_libraries(vlc libvlccore general libvlc)
 
-install_targets(/bin vlc)
+# libvlccore
 
-# libvlc
-
-set( SOURCES_libvlc_beos misc/beos_specific.cpp )
-set( SOURCES_libvlc_darwin misc/darwin_specific.c )
-set( SOURCES_libvlc_win32 misc/win32_specific.c )
-set( SOURCES_libvlc_dirent extras/dirent.c )
-set( SOURCES_libvlc_getopt misc/getopt.c misc/getopt.h misc/getopt1.c )
-set( SOURCES_libvlc_common
+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-common.c
     libvlc.h
     libvlc-module.c
-    interface/interface.h
     interface/interface.c
     interface/intf_eject.c
     interface/interaction.c
@@ -80,7 +79,6 @@ set( SOURCES_libvlc_common
     network/acl.c
     network/getaddrinfo.c
     network/io.c
-    network/error.c
     network/tcp.c
     network/udp.c
     network/httpd.c
@@ -93,6 +91,7 @@ set( SOURCES_libvlc_common
     text/wincp.c
     text/iso_lang.c
     text/iso-639_def.h
+    misc/action.c
     misc/md5.c
     misc/rand.c
     misc/mtime.c
@@ -110,6 +109,7 @@ set( SOURCES_libvlc_common
     config/core.c
     config/chain.c
     config/file.c
+    config/intf.c
     config/cmdline.c
     misc/events.c
     misc/image.c
@@ -121,22 +121,41 @@ set( SOURCES_libvlc_common
     misc/update.c
     ${CMAKE_BINARY_DIR}/src/misc/revision.c
     input/vlm.c
+    input/vlmshell.c
     misc/xml.c
     misc/devices.c
     extras/libc.c
     ${CMAKE_BINARY_DIR}/include/vlc_about.h )
 
-set( SOURCES_libvlc ${SOURCES_libvlc_common} )
+set( SOURCES_libvlccore ${SOURCES_libvlccore_common} )
 
 if(SYS_DARWIN)
-    set( SOURCES_libvlc ${SOURCES_libvlc} ${SOURCES_libvlc_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(libvlc SHARED ${SOURCES_libvlc})
-install_targets(/lib libvlc)
 
-# libvlc-control
-set( SOURCES_libvlc_control
+add_library(libvlccore SHARED ${SOURCES_libvlccore})
+
+set_target_properties(libvlccore PROPERTIES
+        OUTPUT_NAME vlc
+        SOVERSION 1 VERSION 1.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
@@ -144,13 +163,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
@@ -160,37 +178,48 @@ 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 SHARED ${SOURCES_libvlc})
 
-add_library(libvlc-control SHARED ${SOURCES_libvlc_control})
-install_targets(/lib libvlc-control)
-target_link_libraries(libvlc-control libvlc)
+set_target_properties(libvlc PROPERTIES OUTPUT_NAME vlc)
+set_target_properties(libvlc PROPERTIES SOVERSION 0)
+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)
 
 ##########################################################
-# Libraries
+# Install
 
-# iconv
-target_link_libraries(libvlc ${LIBICONV})
+install(TARGETS libvlccore libvlc DESTINATION lib)
+install(TARGETS vlc DESTINATION bin)
+
+##########################################################
+# Libraries
 
 # Carbon
 if(APPLE)
   find_library(CARBON_FRAMEWORK Carbon)
-  target_link_libraries(libvlc ${CARBON_FRAMEWORK})
+  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 `dirname ${rev}`
-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} || printf \"exported\"`" >> ${rev}.tmp
-COMMAND    echo "\";" >> ${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
 )
@@ -201,13 +230,14 @@ set(rev)
 # 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 `dirname ${builtin}`
-COMMAND    echo "/* Auto generated by ${CMAKE_CURRENT_BUILD_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)
@@ -215,25 +245,26 @@ 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 `dirname ${about}`
-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)
 
 
@@ -241,15 +272,32 @@ set(about)
 # SET_TARGET_PROPERTIES
 
 # FIXME: Should probably be autodetected in configure?
-if(NOT APPLE)
-   set(LINK_FLAGS "-z defs --as-needed")
-endif(NOT APPLE)
+# FIXME: This breaks on FreeBSD also
+#if(NOT APPLE)
+#   set(LINK_FLAGS "-z defs --as-needed")
+#endif(NOT APPLE)
 
-target_link_libraries(libvlc ${LIBRT} ${LIBICONV} ${Dlopen_LIBRARIES})
-target_link_libraries(libvlc ${LIBM})
+target_link_libraries(libvlccore "${CMAKE_THREAD_LIBS_INIT}")
+target_link_libraries(libvlc "${CMAKE_THREAD_LIBS_INIT}")
 
-set_target_properties(libvlc PROPERTIES SOVERSION 1)
-set_target_properties(libvlc libvlc-control PROPERTIES PREFIX "")
-set_target_properties(libvlc libvlc-control PROPERTIES LINK_FLAGS "${LINK_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
-set_target_properties(libvlc libvlc-control vlc PROPERTIES COMPILE_FLAGS
+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)
+