symbian.cmake
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
parent 0 bde4ae8d615e
permissions -rw-r--r--
Update contrib.
sl@0
     1
# Copyright (c) 2012 Stéphane Lenclud.
sl@0
     2
# All rights reserved.
sl@0
     3
# This component and the accompanying materials are made available
sl@0
     4
# under the terms of the License "Eclipse Public License v1.0"
sl@0
     5
# which accompanies this distribution, and is available
sl@0
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
#
sl@0
     8
# Initial Contributors:
sl@0
     9
# Stéphane Lenclud.
sl@0
    10
#
sl@0
    11
sl@0
    12
sl@0
    13
#Make sure all the output from all projects will go in one place
sl@1
    14
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
sl@0
    15
#------------------------------------------------------------------
sl@0
    16
sl@0
    17
project (symbian)
sl@0
    18
sl@0
    19
#Global defines will apply to all our binaries
sl@0
    20
add_definitions(-DUNICODE)
sl@0
    21
add_definitions(-D_UNICODE)
sl@0
    22
add_definitions(-D__VC32__)
sl@0
    23
add_definitions(-D__WINS__)
sl@0
    24
add_definitions(-D__SYMC__)
sl@0
    25
add_definitions(-D__LEAVE_EQUALS_THROW__)
sl@0
    26
add_definitions(-D__SUPPORT_CPP_EXCEPTIONS__)
sl@0
    27
add_definitions(-D__PLATSEC_UNLOCKED__)
sl@1
    28
add_definitions(-DMONITOR_THREAD_CPU_TIME)
sl@1
    29
add_definitions(-DSYMBIAN_FIX_TDESC_CONSTRUCTORS)
sl@0
    30
# TODO: I guess public stuff should also define SYMBIAN_ENABLE_SPLIT_HEADERS 
sl@0
    31
sl@0
    32
sl@0
    33
sl@0
    34
#-------------------------------------------------------------
sl@0
    35
add_subdirectory(./os/kernelhwsrv/kernel/eka)
sl@0
    36
## Add ecust DLL
sl@0
    37
add_subdirectory(./os/boardsupport/emulator/emulatorbsp)
sl@0
    38
## Add btracex LDD
sl@0
    39
add_subdirectory(./os/kernelhwsrv/kernel/eka/drivers/trace)
sl@0
    40
## Add elocd.ldd
sl@0
    41
add_subdirectory(./os/kernelhwsrv/kernel/eka/drivers/locmedia)
sl@0
    42
## Add efile.exe
sl@0
    43
add_subdirectory(./os/kernelhwsrv/userlibandfileserver/fileserver/group)
sl@0
    44
## Add domain manager
sl@0
    45
add_subdirectory(./os/kernelhwsrv/userlibandfileserver/domainmgr/group)
sl@0
    46
## Add hal.dll
sl@0
    47
add_subdirectory(./os/boardsupport/emulator/emulatorbsp/hal)
sl@0
    48
## Add estor, centralrepository...
sl@0
    49
add_subdirectory(./os/persistentdata)
sl@0
    50
## Add bafl
sl@0
    51
add_subdirectory(./os/ossrv/lowlevellibsandfws/apputils/group)
sl@0
    52
## Add bsul
sl@0
    53
add_subdirectory(./os/ossrv/lowlevellibsandfws/apputils/bsul/group)
sl@0
    54
## Add charconv
sl@0
    55
add_subdirectory(./os/textandloc/charconvfw/charconv_fw/group)
sl@0
    56
## Add Multimedia
sl@0
    57
add_subdirectory(./os/mm/mmlibs/mmfw/group)
sl@0
    58
## Add window server
sl@0
    59
add_subdirectory(./os/graphics/windowing/windowserver/group)
sl@0
    60
## Add font store
sl@0
    61
add_subdirectory(./os/textandloc/fontservices/fontstore/group)
sl@0
    62
## Add gdi
sl@0
    63
add_subdirectory(./os/graphics/graphicsdeviceinterface/gdi/group)
sl@0
    64
add_subdirectory(./os/graphics/graphicsdeviceinterface/bitgdi/group)
sl@0
    65
add_subdirectory(./os/graphics/graphicsdeviceinterface/screendriver/group)
sl@0
    66
add_subdirectory(./os/graphics/fbs/fontandbitmapserver/group)
sl@0
    67
## Add ecom
sl@0
    68
add_subdirectory(./os/ossrv/lowlevellibsandfws/pluginfw/Group)
sl@0
    69
## Add tests
sl@0
    70
add_subdirectory(./os/kernelhwsrv/kerneltest)
sl@0
    71
#-------------------------------------------------------------
sl@0
    72
sl@1
    73
#Copy epoc.ini to binary directory
sl@1
    74
#Not used anymore we are using configure instead, see below
sl@1
    75
#install(	FILES 
sl@1
    76
#			${PROJECT_SOURCE_DIR}/symc/epoc.ini
sl@1
    77
#			DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${BUILD_TYPE}/data )
sl@1
    78
sl@1
    79
sl@1
    80
#If SYMC_DRIVE_C is not defined we default to parent folder
sl@1
    81
if (NOT DEFINED SYMC_DRIVE_C)
sl@1
    82
    set(SYMC_DRIVE_C_NOT_DEFINED ON)
sl@1
    83
endif()
sl@1
    84
sl@1
    85
sl@1
    86
###### Configure epoc.ini
sl@1
    87
set(DEBUG_EPOC_INI "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/data/epoc.ini")
sl@1
    88
set(RELEASE_EPOC_INI "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Release/data/epoc.ini")
sl@1
    89
sl@1
    90
#Specify default C drive root for debug build
sl@1
    91
if (DEFINED SYMC_DRIVE_C_NOT_DEFINED)
sl@1
    92
    set(SYMC_DRIVE_C "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/c" )
sl@1
    93
endif()
sl@1
    94
sl@1
    95
#Configure epoc.ini for debug build
sl@1
    96
configure_file( ${PROJECT_SOURCE_DIR}/symc/epoc.ini ${DEBUG_EPOC_INI})
sl@1
    97
sl@1
    98
#Specify default C drive root for release build
sl@1
    99
if (DEFINED SYMC_DRIVE_C_NOT_DEFINED)
sl@1
   100
    set(SYMC_DRIVE_C "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Release/c" )
sl@1
   101
endif()
sl@1
   102
sl@1
   103
#Configure epoc.ini for release build
sl@1
   104
configure_file( ${PROJECT_SOURCE_DIR}/symc/epoc.ini ${RELEASE_EPOC_INI})
sl@1
   105
sl@0
   106
#Add a custom target just to group our cmake files together
sl@0
   107
file(GLOB_RECURSE DotCMakeFiles	"./*.cmake")
sl@1
   108
add_custom_target(symbian SOURCES ${source}	${DotCMakeFiles} ./symc/epoc.ini ${DEBUG_EPOC_INI} ${RELEASE_EPOC_INI})	
sl@0
   109
source_group(CMake FILES ${DotCMakeFiles} ${CMAKE_CURRENT_LIST_FILE} )	
sl@1
   110
source_group(Data FILES ./symc/epoc.ini)
sl@1
   111
source_group(Data\\Debug FILES ${DEBUG_EPOC_INI})
sl@1
   112
source_group(Data\\Release FILES ${RELEASE_EPOC_INI})
sl@0
   113