source: trunk/CMakeLists.txt@ 102

Last change on this file since 102 was 102, checked in by smurzch2, 14 years ago

Try to use CMake for build system.

This is a preliminary test for building with CMake

File size: 3.8 KB
Line 
1project (OSCam C)
2
3cmake_minimum_required (VERSION 2.6)
4
5#----------------------- detect system ------------------------------
6
7if (CMAKE_CROSSCOMPILING)
8 if (OSCAM_SYSTEM_NAME MATCHES "Tuxbox")
9 set (OSCamOperatingSystem "Tuxbox")
10 elseif (OSCAM_SYSTEM_NAME MATCHES "Fonera2")
11 set (OSCamOperatingSystem "Fonera2")
12 else (OSCAM_SYSTEM_NAME MATCHES "Tuxbox")
13 set (OSCamOperatingSystem "Unknown")
14 endif (OSCAM_SYSTEM_NAME MATCHES "Tuxbox")
15else (CMAKE_CROSSCOMPILING)
16 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
17 set (OSCamOperatingSystem "Linux")
18 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
19 set (OSCamOperatingSystem "Mac OS X")
20 else (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
21 set (OSCamOperatingSystem "Unknown")
22 endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
23endif (CMAKE_CROSSCOMPILING)
24
25#----------------------- some paths ------------------------------
26
27set (OPTIONAL_LINK_DIR "" CACHE STRING "Some optional link directories")
28set (OPTIONAL_INCLUDE_DIR "" CACHE STRING "Some optional include directories")
29
30include_directories (
31 ${CMAKE_CURRENT_SOURCE_DIR}/csctapi
32 ${CMAKE_CURRENT_SOURCE_DIR}/cscrypt
33 ${OPTIONAL_INCLUDE_DIR}
34 )
35link_directories (${OPTIONAL_LINK_DIR})
36
37#----------------------- global options ------------------------------
38
39if (OSCamOperatingSystem MATCHES "Linux")
40 add_definitions ("-DOS_LINUX")
41elseif (OSCamOperatingSystem MATCHES "Mac OS X")
42 add_definitions ("-DOS_MACOSX -DNEED_DAEMON -DCS_NOSHM -DHAVE_PTHREAD_H -DUSE_PTHREAD")
43elseif (OSCamOperatingSystem MATCHES "Tuxbox")
44 add_definitions ("-DOS_LINUX -DTUXBOX -DPPC")
45elseif (OSCamOperatingSystem MATCHES "Fonera2")
46 add_definitions ("-DOS_LINUX -DMIPSEL -DUCLIBC")
47endif (OSCamOperatingSystem MATCHES "Linux")
48
49#----------------------- subdirectories ------------------------------
50
51add_subdirectory (csctapi)
52add_subdirectory (cscrypt)
53
54#----------------------- file groups ------------------------------
55
56file (GLOB csmodules_srcs "module-*.c")
57file (GLOB csmodules_hdrs "module-*.h")
58file (GLOB csreaders_srcs "reader-*.c")
59file (GLOB csreaders_hdrs "reader-*.h")
60file (GLOB csoscam_srcs "oscam-*.c")
61file (GLOB csoscam_hdrs "oscam-*.h")
62file (GLOB exe_srcs "oscam.c")
63file (GLOB exe_hdrs "globals.h")
64file (GLOB all_srcs ${csmodules_srcs} ${csreaders_srcs} ${csoscam_srcs} ${exe_srcs})
65
66#----------------------- modules ------------------------------
67
68set (csmodules "csmodules")
69add_library (${csmodules} STATIC ${csmodules_srcs} ${csmodules_hdrs})
70
71#----------------------- readers ------------------------------
72
73set (csreaders "csreaders")
74add_library (${csreaders} STATIC ${csreaders_srcs} ${csreaders_hdrs})
75
76#----------------------- other oscam files ------------------------------
77
78set (csoscam "csoscam")
79add_library (${csoscam} STATIC ${csoscam_srcs} ${csoscam_hdrs})
80
81#----------------------- the executable ------------------------------
82
83set (exe_name "oscam")
84add_executable (${exe_name} ${exe_srcs} ${exe_hdrs})
85target_link_libraries (${exe_name} crypto pthread ${csoscam} ${csmodules} ${csreaders} csctapi cscrypt)
86add_dependencies (${exe_name} ${csoscam} ${csreaders} ${csmodules})
87
88#----------------------- specific options ------------------------------
89
90if (OSCamOperatingSystem MATCHES "Linux")
91elseif (OSCamOperatingSystem MATCHES "Mac OS X")
92elseif (OSCamOperatingSystem MATCHES "Tuxbox")
93 target_link_libraries ( ${exe_name} dl)
94elseif (OSCamOperatingSystem MATCHES "Fonera2")
95endif (OSCamOperatingSystem MATCHES "Linux")
96
97set_source_files_properties (${all_srcs} PROPERTIES COMPILE_FLAGS "-O3 -Winline -Werror -finline-functions -fomit-frame-pointer")
98
99#----------------------- printout resume -----------------------------
100
101message (STATUS "")
102message (STATUS " operating system: ${OSCamOperatingSystem}")
103message (STATUS "")
Note: See TracBrowser for help on using the repository browser.