root/library/system/SetBdmEnv.cmake @ 812

Revision 812, 4.9 kB (checked in by smidl, 14 years ago)

ITPP included into BDM


  • Property svn:eol-style set to native
Line 
1# This Module Sets CMake variables for BDM
2# Variable BDM_SOURCE_DIR must be set
3#
4# Other respected variables are
5# ITPP_DIR, ACML_DIR, MATLAB_ROOT
6#
7
8IF(NOT BDM_SOURCE_DIR)
9      MESSAGE(FATAL_ERROR "BDM_SOURCE_DIR is not set!")
10ENDIF(NOT BDM_SOURCE_DIR)
11
12######################
13#Platform specific
14IF(WIN32)
15# IF YOU WANT TO USE YOUR OWN INSTALLATION OF THE NEXT EXTERNAL LIBRARIES,
16# THEN IT IS NECESSARY TO CREATE TEXT FILE "\system\WIN32\LOCAL_PATHS.TXT" WITH
17# COPIES OF THE TWO FOLLOWING LINES AND THEN CORECT ALL THE INVOLVED PATHS
18        IF(NOT ITPP_DIR)
19                SET(ITPP_DIR "${BDM_SOURCE_DIR}\\system\\win32\\itpp-4.0.6")
20        ENDIF(NOT ITPP_DIR)
21        IF(NOT ACML_DIR)
22                SET(ACML_DIR "${BDM_SOURCE_DIR}\\system\\win32\\acml3.6.0")
23        ENDIF(NOT ACML_DIR)
24       
25        INCLUDE(\\system\\win32\\local_paths.txt OPTIONAL)     
26        ADD_DEFINITIONS(-DHAVE_ACML)
27        ADD_DEFINITIONS(/wd4290)
28        ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
29        ADD_DEFINITIONS(-DLIBCONFIG_STATIC -DLIBCONFIGXX_STATIC)
30ENDIF(WIN32)
31IF(APPLE)
32        IF(NOT ITPP_DIR)
33                SET(ITPP_DIR "${BDM_SOURCE_DIR}/system/macosx/itpp-4.0.6")
34        ENDIF(NOT ITPP_DIR)
35        FIND_LIBRARY(FRAMEWORK_VECLIB vecLib)
36        ADD_DEFINITIONS(-DHAVE_XLOCALE_H)
37ENDIF(APPLE)
38IF(UNIX)
39        # Generally this directory should not exist!
40        # Use this location is you compile itpp from sources
41        MESSAGE("ITPPDIR $ENV{ITPP_DIR}")
42        IF($ENV{ITPP_DIR})
43                SET(ITPP_DIR $ENV{ITPP_DIR})
44        ELSE($ENV{ITPP_DIR})
45                SET(ITPP_DIR "${BDM_SOURCE_DIR}/system/linux/")
46        ENDIF($ENV{ITPP_DIR})
47        MESSAGE("ITPPDIR ${ITPP_DIR}")
48        #This is for UNIX makefile which does only one release at a time.
49ENDIF(UNIX)
50
51# Local ettings should be written to file called CMakeLists.local
52# Use this option for machine-specific options, such as prallel architectures
53INCLUDE(CMakeLists.local OPTIONAL)     
54
55#FIND_PACKAGE(ITPP REQUIRED)
56FIND_PACKAGE(ACML COMPONENTS)
57FIND_PACKAGE(Matlab COMPONENTS)
58
59INCLUDE_DIRECTORIES("${BDM_SOURCE_DIR}/bdm/base")#${ITPP_INCLUDE_DIR})
60LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm/base/itpp")#${NATIVE_ITPP_LIB_PATH})
61
62IF(ACML_FOUND)
63        INCLUDE_DIRECTORIES(${ACML_INCLUDE_DIR})
64        LINK_DIRECTORIES(${NATIVE_ACML_LIB_PATH})
65ENDIF(ACML_FOUND)
66
67IF(UNIX)
68        SET(CMAKE_BUILD_TYPE Debug)
69        IF(MATLAB_FOUND)
70                SET(CMAKE_CXX_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC")
71                SET(CMAKE_C_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC")
72        ELSE(MATLAB_FOUND)
73                SET(CMAKE_CXX_FLAGS "-Wall -Wno-unknown-pragmas ")
74                SET(CMAKE_C_FLAGS "-Wall -Wno-unknown-pragmas ")
75        ENDIF(MATLAB_FOUND)
76       
77        SET(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -O2")
78        SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
79ENDIF(UNIX)
80
81##
82## PREPARE MACROS for building executables
83##
84
85MACRO(EXEC FN)
86        add_executable (${FN} ${FN}.cpp)
87        target_link_libraries (${FN} bdm)
88        IF(WIN32)
89                target_link_libraries (${FN} debug itpp_debug)
90                target_link_libraries (${FN} optimized itpp)
91                target_link_libraries (${FN} libacml_dll)
92        ELSE(WIN32)
93                IF(APPLE)
94                        target_link_libraries (${FN} ${FRAMEWORK_VECLIB})
95                ENDIF(APPLE)
96                IF(ITPP_LIBRARY_DEBUG)
97                        target_link_libraries (${FN} debug itpp_debug)
98                        target_link_libraries (${FN} optimized itpp)
99                        target_link_libraries (${FN} lapack blas)
100                ELSE(ITPP_LIBRARY_DEBUG)
101                        target_link_libraries (${FN} itpp)     
102                        target_link_libraries (${FN} lapack blas)
103        ENDIF(ITPP_LIBRARY_DEBUG)
104        ENDIF(WIN32)
105        target_link_libraries (${FN} ${ARGN}) ## Additional libraries can be added to a macro
106ENDMACRO(EXEC)
107
108MACRO(LINK_EXEC FN)
109        target_link_libraries (${FN} bdm)
110        IF(WIN32)
111                target_link_libraries (${FN} debug itpp_debug)
112                target_link_libraries (${FN} optimized itpp)
113                target_link_libraries (${FN} libacml_dll)
114        ELSE(WIN32)
115                IF(APPLE)
116                        target_link_libraries (${FN} ${FRAMEWORK_VECLIB})
117                ENDIF(APPLE)
118                IF(ITPP_LIBRARY_DEBUG)
119                        target_link_libraries (${FN} debug itpp_debug)
120                        target_link_libraries (${FN} optimized itpp)
121                        target_link_libraries (${FN} lapack blas)
122                ELSE(ITPP_LIBRARY_DEBUG)
123                        target_link_libraries (${FN} itpp)     
124                        target_link_libraries (${FN} lapack blas)
125                ENDIF(ITPP_LIBRARY_DEBUG)
126        ENDIF(WIN32)
127ENDMACRO(LINK_EXEC)
128       
129MACRO(MEX FN)
130        IF(MATLAB_FOUND)
131                INCLUDE_DIRECTORIES(${MATLAB_INCLUDE_DIR} "${BDM_SOURCE_DIR}/bdm")
132                LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm")
133                IF(APPLE)
134                    LINK_DIRECTORIES("/Applications/MATLAB_R2007b/bin/maci/")
135                ENDIF(APPLE)
136                IF(WIN32)
137                        ADD_LIBRARY("${FN}.${MATLAB_MEX_SUFFIX}" MODULE ${FN}.cpp "${BDM_SOURCE_DIR}/system/mexFunction.def")
138                ELSE(WIN32)
139                        ADD_LIBRARY("${FN}.${MATLAB_MEX_SUFFIX}" MODULE ${FN}.cpp)
140                ENDIF(WIN32)
141
142                set_target_properties("${FN}.${MATLAB_MEX_SUFFIX}" PROPERTIES
143                        PREFIX ""
144                        SUFFIX ""
145                        COMPILE_FLAGS "-DMEX"
146                )
147                # general libraries
148                TARGET_LINK_LIBRARIES("${FN}.${MATLAB_MEX_SUFFIX}" ${MATLAB_LIBRARIES} bdm itpp lapack blas)
149                # platform specific libraries
150                IF(WIN32)
151                        target_link_libraries ("${FN}.${MATLAB_MEX_SUFFIX}" libacml_dll)
152                ELSE(WIN32)
153                        IF(APPLE)
154                                target_link_libraries ("${FN}.${MATLAB_MEX_SUFFIX}" ${FRAMEWORK_VECLIB})
155                        ENDIF(APPLE)
156                ENDIF(WIN32)
157                ## Additional libraries can be added to a macro
158                target_link_libraries ("${FN}.${MATLAB_MEX_SUFFIX}" ${ARGN})
159        ENDIF(MATLAB_FOUND)
160ENDMACRO(MEX)
Note: See TracBrowser for help on using the browser.