/rusxmms/librcc

To get this branch, use:
bzr branch http://suren.me/webbzr/rusxmms/librcc

« back to all changes in this revision

Viewing changes to CMakeLists.txt

  • Committer: Suren A. Chilingaryan
  • Date: 2010-07-16 07:58:26 UTC
  • Revision ID: csa@dside.dyndns.org-20100716075826-4rvnh4iccqrqsdfj
Windows fixes and CMake scripts to build under Windows

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
cmake_minimum_required(VERSION 2.6.3)
 
2
project(librcc)
 
3
 
 
4
set(CMAKE_VERBOSE_MAKEFILE YES)
 
5
set(CMAKE_BUILD_TYPE RELEASE)
 
6
 
 
7
if (WIN32)
 
8
    SET(USR_FOLDER "C:/DEVEL/UNIX" CACHE PATH "Path to libraries and includes")
 
9
    SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES};${USR_FOLDER}/include)
 
10
    INCLUDE_DIRECTORIES(${USR_FOLDER}/include)
 
11
    
 
12
    find_library(ZLIB_LIBRARY NAMES zlib PATHS ${USR_FOLDER} PATH_SUFFIXES "lib")
 
13
    if (NOT ZLIB_LIBRARY)
 
14
        MESSAGE(FATAL_ERROR "Could not find zlib")
 
15
    endif()
 
16
 
 
17
    find_library(LIBXML2_LIBRARY NAMES libxml2 PATHS ${USR_FOLDER} PATH_SUFFIXES "lib")
 
18
    if (NOT LIBXML2_LIBRARY)
 
19
        MESSAGE(FATAL_ERROR "Could not find LibXML2")
 
20
    endif()
 
21
 
 
22
    find_library(ICONV_LIBRARY NAMES libiconv PATHS ${USR_FOLDER} PATH_SUFFIXES "lib")
 
23
    if (NOT ICONV_LIBRARY)
 
24
        MESSAGE(FATAL_ERROR "Could not find iconv")
 
25
    endif ()
 
26
    
 
27
    find_library(ENCA_LIBRARY NAMES libenca PATHS ${USR_FOLDER} PATH_SUFFIXES "lib")
 
28
    if (ENCA_LIBRARY)
 
29
        SET(HAVE_ENCA TRUE)
 
30
    endif()
 
31
    
 
32
    find_library(LIBRCD_LIBRARY NAMES rcd PATHS ${USR_FOLDER} PATH_SUFFIXES "lib")
 
33
    if (LIBRCD_LIBRARY)
 
34
        SET(HAVE_RCD TRUE)
 
35
    endif()
 
36
 
 
37
    find_library(WSOCK_LIBRARY NAMES wsock32)
 
38
    if (NOT WSOCK_LIBRARY)
 
39
        MESSAGE(FATAL_ERROR "Could not find wsock library")
 
40
    endif()
 
41
 
 
42
else (WIN32)
 
43
    MESSAGE(FATAL_ERROR "Windows build only, use autoconf for POSIX-compliant systems")
 
44
endif (WIN32)
 
45
 
 
46
 
 
47
 
 
48
INCLUDE(CheckIncludeFiles)
 
49
CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
 
50
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
 
51
CHECK_INCLUDE_FILES (sys/file.h HAVE_SYS_FILE_H)
 
52
CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
 
53
CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
 
54
CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
 
55
CHECK_INCLUDE_FILES (sys/wait.h HAVE_SYS_WAIT_H)
 
56
CHECK_INCLUDE_FILES (signal.h HAVE_SIGNAL_H)
 
57
CHECK_INCLUDE_FILES (sys/un.h HAVE_SYS_UN_H)
 
58
CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
 
59
CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H)
 
60
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
 
61
CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H)
 
62
CHECK_INCLUDE_FILES (iconv.h HAVE_ICONV_H)
 
63
CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)
 
64
CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H)
 
65
 
 
66
INCLUDE (CheckTypeSize)
 
67
CHECK_TYPE_SIZE(size_t      SIZEOF_SIZE_T)
 
68
IF(NOT HAVE_SIZEOF_SIZE_T)
 
69
  SET(size_t "unsigned int")
 
70
ENDIF(NOT HAVE_SIZEOF_SIZE_T)
 
71
 
 
72
CHECK_TYPE_SIZE(ssize_t     SIZEOF_SSIZE_T)
 
73
IF(NOT HAVE_SIZEOF_SSIZE_T)
 
74
  CHECK_TYPE_SIZE("long"  SIZEOF_LONG)
 
75
  CHECK_TYPE_SIZE("__int64"  SIZEOF___INT64)
 
76
  IF(SIZEOF_LONG EQUAL SIZEOF_SIZE_T)
 
77
    SET(ssize_t long)
 
78
  ENDIF(SIZEOF_LONG EQUAL SIZEOF_SIZE_T)
 
79
  IF(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T)
 
80
    SET(ssize_t __int64)
 
81
  ENDIF(NOT ssize_t AND SIZEOF___INT64 EQUAL SIZEOF_SIZE_T)
 
82
ENDIF(NOT HAVE_SIZEOF_SSIZE_T)
 
83
 
 
84
INCLUDE (CheckFunctionExists)
 
85
CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
 
86
CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP)
 
87
CHECK_FUNCTION_EXISTS(flock HAVE_FLOCK)
 
88
CHECK_FUNCTION_EXISTS(lockf HAVE_LOCKF)
 
89
CHECK_FUNCTION_EXISTS(fsync HAVE_FSYNC)
 
90
CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
 
91
CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP)
 
92
CHECK_FUNCTION_EXISTS(ftruncate HAVE_FTRUNCATE)
 
93
 
 
94
IF(NOT HAVE_STRCASECMP AND WIN32)
 
95
    SET(strcasecmp _stricmp)
 
96
endif(NOT HAVE_STRCASECMP AND WIN32)
 
97
 
 
98
IF(NOT HAVE_STRNCASECMP AND WIN32)
 
99
    SET(strncasecmp _strnicmp)
 
100
endif(NOT HAVE_STRNCASECMP AND WIN32)
 
101
 
 
102
IF(NOT HAVE_FTRUNCATE AND WIN32)
 
103
    SET(ftruncate _chsize)
 
104
endif(NOT HAVE_FTRUNCATE AND WIN32)
 
105
 
 
106
INCLUDE (CheckLibraryExists)
 
107
INCLUDE (CheckSymbolExists)
 
108
 
 
109
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 
110
 
 
111
add_subdirectory(src)
 
112
add_subdirectory(examples)