Skip to content

Commit

Permalink
cmake: Add a FindDlopen module. (Ask for review by dlopen users).
Browse files Browse the repository at this point in the history
  • Loading branch information
pdherbemont committed Feb 4, 2008
1 parent 6404591 commit 2c86b23
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 6 deletions.
16 changes: 12 additions & 4 deletions extras/buildsystem/cmake/CMakeLists/root_CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
PROJECT(vlc)

# Set the module path
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

# Our own include
include( ${CMAKE_SOURCE_DIR}/cmake/vlc_module_funcs.cmake )
include( vlc_module_funcs )

# Config
include( ${CMAKE_SOURCE_DIR}/cmake/config.cmake )
# Our config
include( config )

add_definitions(-DHAVE_CONFIG_H)
add_definitions(-D__LIBVLC__)
add_definitions(-I. -std=gnu99)

# Needed for glibc:
add_definitions(-D_GNU_SOURCE)

# Our main include directories
include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)

# Sources
# our sources:
add_subdirectory(src)
add_subdirectory(modules)




2 changes: 2 additions & 0 deletions extras/buildsystem/cmake/CMakeLists/src_CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ if(APPLE)
target_link_libraries(libvlc ${CARBON_FRAMEWORK})
endif(APPLE)

target_link_libraries(libvlc ${Dlopen_LIBRARY})

##########################################################
# revision.c

Expand Down
38 changes: 38 additions & 0 deletions extras/buildsystem/cmake/include/FindDlopen.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# From licq www.licq.org (GPL)
# - Find library containing dlopen()
# The following variables are set if dlopen is found. If dlopen is not
# found, Dlopen_FOUND is set to false.
# Dlopen_FOUND - System has dlopen.
# Dlopen_LIBRARIES - Link these to use dlopen.
#
# Copyright (c) 2007 Erik Johansson <[email protected]>
# Redistribution and use is allowed according to the terms of the BSD license.

include(CheckLibraryExists)

# Assume dlopen is not found.
set(Dlopen_FOUND FALSE)

foreach (library c c_r dl)
if (NOT Dlopen_FOUND)
check_library_exists(${library} dlopen "" Dlopen_IN_${library})

if (Dlopen_IN_${library})
set(Dlopen_LIBRARIES ${library} CACHE STRING "Library containing dlopen")
set(Dlopen_FOUND TRUE)
endif (Dlopen_IN_${library})

endif (NOT Dlopen_FOUND)
endforeach (library)

if (Dlopen_FOUND)
if (NOT Dlopen_FIND_QUIETLY)
message(STATUS "Found dlopen in: ${Dlopen_LIBRARIES}")
endif (NOT Dlopen_FIND_QUIETLY)
else (Dlopen_FOUND)
if (Dlopen_FIND_REQUIRED)
message(FATAL_ERROR "Could not find the library containing dlopen")
endif (Dlopen_FIND_REQUIRED)
endif (Dlopen_FOUND)

mark_as_advanced(Dlopen_LIBRARIES)
7 changes: 5 additions & 2 deletions extras/buildsystem/cmake/include/config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ vlc_check_include_files (netinet/in.h netinet/udplite.h)
vlc_check_include_files (netdb.h fcntl.h sys/time.h poll.h)
vlc_check_include_files (errno.h time.h)

vlc_check_include_files (dlfcn.h dl.h)

vlc_check_include_files (kernel/OS.h)
vlc_check_include_files (mach-o/dyld.h)

Expand Down Expand Up @@ -77,7 +79,6 @@ find_library(HAVE_ICONV iconv)
# FIXME: this will break on *BSD:
set( ICONV_CONST " " )

check_library_exists(dl dlopen "" HAVE_DL_DLOPEN)
check_library_exists(rt clock_nanosleep "" HAVE_CLOCK_NANOSLEEP)

###########################################################
Expand Down Expand Up @@ -232,7 +233,9 @@ if(${LIBCDDB_FOUND})
vlc_add_module_compile_flag(cdda ${LIBCDDB_CFLAGS} )
endif(${LIBCDDB_FOUND})

include (FindDlopen)
set(HAVE_DL_DLOPEN ${Dlopen_FOUND})

###########################################################
# Final configuration
###########################################################
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)

0 comments on commit 2c86b23

Please sign in to comment.