root/library/system/SetBdmEnv.cmake @ 1022

Revision 1022, 3.3 kB (checked in by smidl, 14 years ago)

Ndebug

  • 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 ACML_DIR)
19                SET(ACML_DIR "${BDM_SOURCE_DIR}\\system\\win32\\acml3.6.0")
20        ENDIF(NOT ACML_DIR)
21       
22        INCLUDE(\\system\\win32\\local_paths.txt OPTIONAL)     
23        ADD_DEFINITIONS(-DHAVE_ACML)
24        ADD_DEFINITIONS(/wd4290)
25        ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
26        ADD_DEFINITIONS(-DLIBCONFIG_STATIC -DLIBCONFIGXX_STATIC)
27
28        SET(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
29
30        FIND_PACKAGE(ACML REQUIRED)
31        IF(ACML_FOUND)
32                INCLUDE_DIRECTORIES(${ACML_INCLUDE_DIR})
33                LINK_DIRECTORIES(${NATIVE_ACML_LIB_PATH})
34        ENDIF(ACML_FOUND)
35        SET(lapack_libs libacml_dll)
36ENDIF(WIN32)
37IF(APPLE)
38        FIND_LIBRARY(FRAMEWORK_VECLIB vecLib)
39        ADD_DEFINITIONS(-DHAVE_XLOCALE_H)
40        SET(lapack_libs ${FRAMEWORK_VECLIB})
41ENDIF(APPLE)
42IF(UNIX)
43        SET(lapack_libs lapack blas)
44ENDIF(UNIX)
45
46# Local ettings should be written to file called CMakeLists.local
47# Use this option for machine-specific options, such as prallel architectures
48INCLUDE(CMakeLists.local OPTIONAL)     
49
50FIND_PACKAGE(Matlab COMPONENTS)
51
52
53## BUILD own ITPP
54INCLUDE_DIRECTORIES("${BDM_SOURCE_DIR}/bdm/base")#${ITPP_INCLUDE_DIR})
55LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm/base/itpp")#${NATIVE_ITPP_LIB_PATH})
56
57
58IF(UNIX)
59        SET(CMAKE_BUILD_TYPE Debug)
60        IF(MATLAB_FOUND)
61                SET(CMAKE_CXX_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC")
62                SET(CMAKE_C_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC")
63        ELSE(MATLAB_FOUND)
64                SET(CMAKE_CXX_FLAGS "-Wall -Wno-unknown-pragmas ")
65                SET(CMAKE_C_FLAGS "-Wall -Wno-unknown-pragmas ")
66        ENDIF(MATLAB_FOUND)
67       
68        SET(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -O2")
69        SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
70ENDIF(UNIX)
71
72##
73## PREPARE MACROS for building executables
74##
75
76MACRO(EXEC FN)
77        add_executable (${FN} ${FN}.cpp)
78        target_link_libraries (${FN} bdm)
79        target_link_libraries (${FN} itpp)
80        target_link_libraries (${FN} ${lapack_libs})
81        target_link_libraries (${FN} ${ARGN}) ## Additional libraries can be added to a macro
82ENDMACRO(EXEC)
83
84MACRO(LINK_EXEC FN)
85        target_link_libraries (${FN} bdm)
86        target_link_libraries (${FN} itpp)
87        target_link_libraries (${FN} ${lapack_libs})
88ENDMACRO(LINK_EXEC)
89       
90MACRO(MEX FN)
91        IF(MATLAB_FOUND)
92                INCLUDE_DIRECTORIES(${MATLAB_INCLUDE_DIR} "${BDM_SOURCE_DIR}/bdm")
93                LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm")
94                IF(APPLE)
95                    LINK_DIRECTORIES("/Applications/MATLAB_R2007b/bin/maci/")
96                ENDIF(APPLE)
97                IF(WIN32)
98                        ADD_LIBRARY("${FN}.${MATLAB_MEX_SUFFIX}" MODULE ${FN}.cpp "${BDM_SOURCE_DIR}/system/mexFunction.def")
99                ELSE(WIN32)
100                        ADD_LIBRARY("${FN}.${MATLAB_MEX_SUFFIX}" MODULE ${FN}.cpp)
101                ENDIF(WIN32)
102
103                set_target_properties("${FN}.${MATLAB_MEX_SUFFIX}" PROPERTIES
104                        PREFIX ""
105                        SUFFIX ""
106                        COMPILE_FLAGS "-DMEX"
107                )
108                # general libraries
109                TARGET_LINK_LIBRARIES("${FN}.${MATLAB_MEX_SUFFIX}" ${MATLAB_LIBRARIES} bdm itpp ${lapack_libs})
110                ## Additional libraries can be added to a macro
111                target_link_libraries ("${FN}.${MATLAB_MEX_SUFFIX}" ${ARGN})
112        ENDIF(MATLAB_FOUND)
113ENDMACRO(MEX)
Note: See TracBrowser for help on using the browser.