sl@0: # Copyright (c) 2012 Stéphane Lenclud. sl@0: # All rights reserved. sl@0: # This component and the accompanying materials are made available sl@0: # under the terms of the License "Eclipse Public License v1.0" sl@0: # which accompanies this distribution, and is available sl@0: # at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: # sl@0: # Initial Contributors: sl@0: # Stéphane Lenclud. sl@0: # sl@0: sl@0: sl@0: #Make sure all the output from all projects will go in one place sl@1: set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) sl@0: #------------------------------------------------------------------ sl@0: sl@0: project (symbian) sl@0: sl@0: #Global defines will apply to all our binaries sl@0: add_definitions(-DUNICODE) sl@0: add_definitions(-D_UNICODE) sl@0: add_definitions(-D__VC32__) sl@0: add_definitions(-D__WINS__) sl@0: add_definitions(-D__SYMC__) sl@0: add_definitions(-D__LEAVE_EQUALS_THROW__) sl@0: add_definitions(-D__SUPPORT_CPP_EXCEPTIONS__) sl@0: add_definitions(-D__PLATSEC_UNLOCKED__) sl@1: add_definitions(-DMONITOR_THREAD_CPU_TIME) sl@1: add_definitions(-DSYMBIAN_FIX_TDESC_CONSTRUCTORS) sl@0: # TODO: I guess public stuff should also define SYMBIAN_ENABLE_SPLIT_HEADERS sl@0: sl@0: sl@0: sl@0: #------------------------------------------------------------- sl@0: add_subdirectory(./os/kernelhwsrv/kernel/eka) sl@0: ## Add ecust DLL sl@0: add_subdirectory(./os/boardsupport/emulator/emulatorbsp) sl@0: ## Add btracex LDD sl@0: add_subdirectory(./os/kernelhwsrv/kernel/eka/drivers/trace) sl@0: ## Add elocd.ldd sl@0: add_subdirectory(./os/kernelhwsrv/kernel/eka/drivers/locmedia) sl@0: ## Add efile.exe sl@0: add_subdirectory(./os/kernelhwsrv/userlibandfileserver/fileserver/group) sl@0: ## Add domain manager sl@0: add_subdirectory(./os/kernelhwsrv/userlibandfileserver/domainmgr/group) sl@0: ## Add hal.dll sl@0: add_subdirectory(./os/boardsupport/emulator/emulatorbsp/hal) sl@0: ## Add estor, centralrepository... sl@0: add_subdirectory(./os/persistentdata) sl@0: ## Add bafl sl@0: add_subdirectory(./os/ossrv/lowlevellibsandfws/apputils/group) sl@0: ## Add bsul sl@0: add_subdirectory(./os/ossrv/lowlevellibsandfws/apputils/bsul/group) sl@0: ## Add charconv sl@0: add_subdirectory(./os/textandloc/charconvfw/charconv_fw/group) sl@0: ## Add Multimedia sl@0: add_subdirectory(./os/mm/mmlibs/mmfw/group) sl@0: ## Add window server sl@0: add_subdirectory(./os/graphics/windowing/windowserver/group) sl@0: ## Add font store sl@0: add_subdirectory(./os/textandloc/fontservices/fontstore/group) sl@0: ## Add gdi sl@0: add_subdirectory(./os/graphics/graphicsdeviceinterface/gdi/group) sl@0: add_subdirectory(./os/graphics/graphicsdeviceinterface/bitgdi/group) sl@0: add_subdirectory(./os/graphics/graphicsdeviceinterface/screendriver/group) sl@0: add_subdirectory(./os/graphics/fbs/fontandbitmapserver/group) sl@0: ## Add ecom sl@0: add_subdirectory(./os/ossrv/lowlevellibsandfws/pluginfw/Group) sl@0: ## Add tests sl@0: add_subdirectory(./os/kernelhwsrv/kerneltest) sl@0: #------------------------------------------------------------- sl@0: sl@1: #Copy epoc.ini to binary directory sl@1: #Not used anymore we are using configure instead, see below sl@1: #install( FILES sl@1: # ${PROJECT_SOURCE_DIR}/symc/epoc.ini sl@1: # DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${BUILD_TYPE}/data ) sl@1: sl@1: sl@1: #If SYMC_DRIVE_C is not defined we default to parent folder sl@1: if (NOT DEFINED SYMC_DRIVE_C) sl@1: set(SYMC_DRIVE_C_NOT_DEFINED ON) sl@1: endif() sl@1: sl@1: sl@1: ###### Configure epoc.ini sl@1: set(DEBUG_EPOC_INI "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/data/epoc.ini") sl@1: set(RELEASE_EPOC_INI "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Release/data/epoc.ini") sl@1: sl@1: #Specify default C drive root for debug build sl@1: if (DEFINED SYMC_DRIVE_C_NOT_DEFINED) sl@1: set(SYMC_DRIVE_C "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/c" ) sl@1: endif() sl@1: sl@1: #Configure epoc.ini for debug build sl@1: configure_file( ${PROJECT_SOURCE_DIR}/symc/epoc.ini ${DEBUG_EPOC_INI}) sl@1: sl@1: #Specify default C drive root for release build sl@1: if (DEFINED SYMC_DRIVE_C_NOT_DEFINED) sl@1: set(SYMC_DRIVE_C "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Release/c" ) sl@1: endif() sl@1: sl@1: #Configure epoc.ini for release build sl@1: configure_file( ${PROJECT_SOURCE_DIR}/symc/epoc.ini ${RELEASE_EPOC_INI}) sl@1: sl@0: #Add a custom target just to group our cmake files together sl@0: file(GLOB_RECURSE DotCMakeFiles "./*.cmake") sl@1: add_custom_target(symbian SOURCES ${source} ${DotCMakeFiles} ./symc/epoc.ini ${DEBUG_EPOC_INI} ${RELEASE_EPOC_INI}) sl@0: source_group(CMake FILES ${DotCMakeFiles} ${CMAKE_CURRENT_LIST_FILE} ) sl@1: source_group(Data FILES ./symc/epoc.ini) sl@1: source_group(Data\\Debug FILES ${DEBUG_EPOC_INI}) sl@1: source_group(Data\\Release FILES ${RELEASE_EPOC_INI}) sl@0: