forked from enlightenment/efl
build: make eina working
This brings in the checks for all the headers and function that are required in eina. With this commit only a few other checks are missing. This is NOT tested on windows or mac os i can just verify that it runs here on a arch linux system.
This commit is contained in:
parent
23dddf8e1c
commit
6c87f62b90
|
@ -45,5 +45,5 @@ configure_file(
|
|||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/src/lib/efl/Efl_Config.h.cmake
|
||||
${PROJECT_BINARY_DIR}/src/lib/efl/Efl_Config.h)
|
||||
|
||||
EFL_HEADER_CHECKS_FINALIZE(${PROJECT_BINARY_DIR}/src/lib/efl/config_headers.h)
|
||||
EFL_FINALIZE()
|
||||
|
|
|
@ -7,8 +7,6 @@ find_package(Threads REQUIRED)
|
|||
|
||||
pkg_check_modules(CHECK check)
|
||||
|
||||
CHECK_INCLUDE_FILE(sys/mman.h HAVE_SYS_MMAN_H)
|
||||
|
||||
set(VMAJ ${PROJECT_VERSION_MAJOR})
|
||||
set(VMIN ${PROJECT_VERSION_MINOR})
|
||||
set(VMIC ${PROJECT_VERSION_PATCH})
|
||||
|
@ -17,6 +15,13 @@ set(EFL_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
|||
set(EFL_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||
set(MODULE_ARCH "v-${VMAJ}.${VMIN}")
|
||||
|
||||
#change when on windows
|
||||
if (WIN32)
|
||||
set(SHARED_LIB_SUFFIX ".dll")
|
||||
else()
|
||||
set(SHARED_LIB_SUFFIX ".so")
|
||||
endif()
|
||||
|
||||
EFL_OPTION(BUILD_PROFILE "How to build EFL" dev CHOICE release;dev;debug)
|
||||
EFL_OPTION(EFL_NOLEGACY_API_SUPPORT "Whenever to disable non-Eo (Legacy) APIs" ON)
|
||||
EFL_OPTION(EFL_EO_API_SUPPORT "Whenever to enable new Eo APIs" ON)
|
||||
|
@ -24,5 +29,16 @@ if(NOT EFL_EO_API_SUPPORT)
|
|||
EFL_OPTION_SET_MESSAGE(EFL_EO_API_SUPPORT "Risky!")
|
||||
endif()
|
||||
|
||||
|
||||
#define all our header / function checks
|
||||
include(./CommonHeaderChecks)
|
||||
|
||||
|
||||
#this is needed to build efl
|
||||
set(EFL_BETA_API_SUPPORT 1)
|
||||
|
||||
#if there are thread init support from cmake then efl has threads
|
||||
|
||||
if (CMAKE_THREAD_LIBS_INIT)
|
||||
set(EFL_HAVE_THREADS 1)
|
||||
endif()
|
|
@ -60,8 +60,6 @@ CHECK_SYMBOL_EXISTS(bswap_16 byteswap.h EINA_HAVE_BSWAP16)
|
|||
CHECK_SYMBOL_EXISTS(bswap_32 byteswap.h EINA_HAVE_BSWAP32)
|
||||
CHECK_SYMBOL_EXISTS(bswap_64 byteswap.h EINA_HAVE_BSWAP64)
|
||||
|
||||
CHECK_SYMBOL_EXISTS(clock_gettime time.h HAVE_CLOCK_GETTIME)
|
||||
|
||||
if(ENABLE_VALGRIND)
|
||||
pkg_check_modules(VG REQUIRED valgrind)
|
||||
SET_GLOBAL(NVALGRIND OFF)
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
unset(HEADER_FILE_CONTENT CACHE)
|
||||
|
||||
macro(HEADER_CHECK header var)
|
||||
CHECK_INCLUDE_FILE(${header} ${var})
|
||||
if (${${var}})
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#define ${var} 1\n" CACHE INTERNAL "")
|
||||
else()
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#undef ${var}\n" CACHE INTERNAL "")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(FUNC_CHECK func header var)
|
||||
CHECK_SYMBOL_EXISTS(${func} ${header} ${var})
|
||||
if (${${var}} )
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#define ${var} 1\n" CACHE INTERNAL "")
|
||||
else()
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#undef ${var}\n" CACHE INTERNAL "")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(TYPE_CHECK func header var)
|
||||
set(CMAKE_EXTRA_INCLUDE_FILES ${header})
|
||||
CHECK_TYPE_SIZE(${func} ${var})
|
||||
unset(CMAKE_EXTRA_INCLUDE_FILES)
|
||||
if (${${var}} GREATER 0)
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#define ${var} 1\n" CACHE INTERNAL "")
|
||||
else()
|
||||
set(HEADER_FILE_CONTENT "${HEADER_FILE_CONTENT}#undef ${var}\n" CACHE INTERNAL "")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
FUNC_CHECK(geteuid unistd.h HAVE_GETEUID)
|
||||
FUNC_CHECK(getuid unistd.h HAVE_GETUID)
|
||||
FUNC_CHECK(getpagesize unistd.h HAVE_GETPAGESIZE)
|
||||
FUNC_CHECK(strlcpy bsd/string.h HAVE_STRLCPY)
|
||||
FUNC_CHECK(mmap sys/mman.h HAVE_MMAP)
|
||||
FUNC_CHECK(fchmod sys/stat.h HAVE_FCHMOD)
|
||||
FUNC_CHECK(clock_gettime time.h HAVE_CLOCK_GETTIME)
|
||||
FUNC_CHECK(fstatat sys/stat.h HAVE_ATFILE_SOURCE)
|
||||
FUNC_CHECK(dirfd "dirent.h;sys/types.h" HAVE_DIRFD)
|
||||
FUNC_CHECK(fpathconf "unistd.h" HAVE_FPATHCONF)
|
||||
FUNC_CHECK(fpathconf "unistd.h" HAVE_FPATHCONF)
|
||||
FUNC_CHECK(listxattr "sys/types.h;sys/xattr.h" HAVE_LISTXATTR)
|
||||
FUNC_CHECK(setxattr "sys/types.h;sys/xattr.h" HAVE_SETXATTR)
|
||||
FUNC_CHECK(getxattr "sys/types.h;sys/xattr.h" HAVE_GETXATTR)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES "-ldl")
|
||||
FUNC_CHECK(dlopen dlfcn.h HAVE_DLOPEN)
|
||||
unset(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
FUNC_CHECK(mtrace mcheck.h HAVE_MTRACE)
|
||||
FUNC_CHECK(strerror_r string.h HAVE_STRERROR_R)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "-lrt")
|
||||
FUNC_CHECK(shm_open "sys/mman.h;sys/stat.h;fcntl.h" HAVE_SHM_OPEN)
|
||||
|
||||
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE=1")
|
||||
FUNC_CHECK(sched_getcpu sched.h HAVE_SCHED_GETCPU)
|
||||
FUNC_CHECK(splice fcntl.h HAVE_SPLICE)
|
||||
FUNC_CHECK(fcntl fcntl.h HAVE_FCNTL)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "-ldl")
|
||||
FUNC_CHECK(dladdr dlfcn.h HAVE_DLADDR)
|
||||
|
||||
TYPE_CHECK(siginfo_t signal.h HAVE_SIGINFO_T)
|
||||
|
||||
HEADER_CHECK(stdlib.h HAVE_STDLIB_H)
|
||||
HEADER_CHECK(sys/mman.h HAVE_SYS_MMAN_H)
|
||||
HEADER_CHECK(dirent.h HAVE_DIRENT_H)
|
||||
HEADER_CHECK(iconv.h HAVE_ICONV_H)
|
||||
HEADER_CHECK(sys/auxv.h HAVE_SYS_AUXV_H)
|
||||
HEADER_CHECK(asm/hwcap.h HAVE_ASM_HWCAP_H)
|
||||
HEADER_CHECK(mcheck.h HAVE_MCHECK_H)
|
||||
HEADER_CHECK(sys/types.h HAVE_SYS_TYPES_H)
|
||||
HEADER_CHECK(execinfo.h HAVE_EXECINFO_H)
|
||||
HEADER_CHECK(libunwind.h HAVE_UNWIND)
|
||||
|
||||
function(EFL_HEADER_CHECKS_FINALIZE file)
|
||||
file(WRITE ${file} ${HEADER_FILE_CONTENT})
|
||||
endfunction()
|
|
@ -2,7 +2,8 @@
|
|||
#define CONFIG_H
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#cmakedefine HAVE_SYS_MMAN_H 1
|
||||
|
||||
#include "config_headers.h"
|
||||
|
||||
#define VMAJ @VMAJ@
|
||||
#define VMIN @VMIN@
|
||||
|
@ -10,13 +11,24 @@
|
|||
#define VREV @VREV@
|
||||
|
||||
#cmakedefine NVALGRIND 1
|
||||
#cmakedefine HAVE_CLOCK_GETTIME 1
|
||||
|
||||
#cmakedefine EINA_STATIC_BUILD_CHAINED_POOL 1
|
||||
#cmakedefine EINA_STATIC_BUILD_ONE_BIG 1
|
||||
#cmakedefine EINA_STATIC_BUILD_PASS_THROUGH 1
|
||||
|
||||
#define MODULE_ARCH "@MODULE_ARCH@"
|
||||
#define SHARED_LIB_SUFFIX "bla"
|
||||
#define SHARED_LIB_SUFFIX "@SHARED_LIB_SUFFIX@"
|
||||
|
||||
#if defined (HAVE_LISTXATTR) && defined (HAVE_SETXATTR) && defined (HAVE_GETXATTR)
|
||||
#define HAVE_XATTR
|
||||
#endif
|
||||
|
||||
//for now statically define that to one
|
||||
#define STRERROR_R_CHAR_P 1
|
||||
|
||||
#cmakedefine EFL_ALWAYS_INLINE @EFL_ALWAYS_INLINE@
|
||||
#cmakedefine EFL_HAVE_OSX_SPINLOCK 1
|
||||
#cmakedefine EFL_HAVE_POSIX_THREADS_SPINLOCK 1
|
||||
#cmakedefine EFL_HAVE_THREADS 1
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue