summaryrefslogtreecommitdiff
path: root/ldmicro/CMakeLists.txt
diff options
context:
space:
mode:
authorNatsuDrag92018-06-08 11:32:32 +0530
committerNatsuDrag92018-06-08 11:32:32 +0530
commit3f6c61496b4db5415e44c5951713a170f6960b13 (patch)
tree82adf85728d5af3925a91176b2ee40162e471be4 /ldmicro/CMakeLists.txt
parent8ff08be6a0a927cacfac2c8a860af741f1b9412d (diff)
parent0c6453de66b91f24da5cd193d4e6c6c8d814f301 (diff)
downloadLDMicroGtk-3f6c61496b4db5415e44c5951713a170f6960b13.tar.gz
LDMicroGtk-3f6c61496b4db5415e44c5951713a170f6960b13.tar.bz2
LDMicroGtk-3f6c61496b4db5415e44c5951713a170f6960b13.zip
Merge branch 'akshay-c-GUI_port' into GUI_port
Diffstat (limited to 'ldmicro/CMakeLists.txt')
-rw-r--r--ldmicro/CMakeLists.txt114
1 files changed, 81 insertions, 33 deletions
diff --git a/ldmicro/CMakeLists.txt b/ldmicro/CMakeLists.txt
index 90354c8..90a1616 100644
--- a/ldmicro/CMakeLists.txt
+++ b/ldmicro/CMakeLists.txt
@@ -2,6 +2,18 @@ cmake_minimum_required(VERSION 2.6)
project(LDMicro)
+macro(use_cxx11)
+
+if (CMAKE_VERSION VERSION_LESS "3.1")
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
+ endif ()
+else ()
+ set (CMAKE_CXX_STANDARD 11)
+endif ()
+
+endmacro(use_cxx11)
+
IF(WIN32)
MESSAGE( FATAL_ERROR "Cannot build for windows, exiting" )
add_definitions(-D__WIN32__)
@@ -13,15 +25,20 @@ IF (MSVC)
ENDIF (MSVC)
IF(UNIX)
+ MESSAGE( STATUS "Initializing.." )
add_definitions(-D__UNIX__)
+ add_definitions(-DLDLANG_EN)
+ use_cxx11()
+
+ # set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/build/")
MESSAGE( STATUS "Performing system check.." )
MESSAGE( STATUS "Identifing bitness of the platform.." )
- add_definitions(-D__UNIX32)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_definitions(-D__UNIX64)
MESSAGE( STATUS "Bitness of the platform: " 64)
else()
+ add_definitions(-D__UNIX32)
MESSAGE( STATUS "Bitness of the platform: " 36)
endif()
MESSAGE( STATUS "Performing system check - done" )
@@ -30,69 +47,100 @@ IF(UNIX)
find_package (PkgConfig REQUIRED)
pkg_check_modules (GTK3 REQUIRED gtk+-3.0)
- # Version control
+ ## Set object dir
+ set(OBJDIR ${CMAKE_CURRENT_SOURCE_DIR}/obj)
+
+ ## Set perl scripts to be run before build to generate files needed
+ MESSAGE( STATUS "Adding perl scripts to build.." )
+
+ add_custom_command(
+ OUTPUT ${OBJDIR}/lang-tables.h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMAND perl lang-tables.pl > ${OBJDIR}/lang-tables.h
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lang-*.txt")
+
+ add_custom_command(
+ OUTPUT ${OBJDIR}/helptext.cpp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMAND perl txt2c.pl > ${OBJDIR}/helptext.cpp
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/manual*.txt")
+
+ set(SCRIPT_GENERATED_FILES ${OBJDIR}/helptext.cpp
+ ${OBJDIR}/lang-tables.h)
+
+ add_custom_target(LDMicro_SCRIPT_GENERATED_FILES DEPENDS ${SCRIPT_GENERATED_FILES})
+
+ ## Version control
set (LDMicro_VERSION_MAJOR 1)
set (LDMicro_VERSION_MINOR 0)
- # configure a header file to pass some of the CMake settings
- # to the source code
+ ## configure a header file to pass some of the CMake settings
+ ## to the source code
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/lib/linuxUI")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/lib/freezeLD")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/includes")
+ # include_directories("${OBJDIR}")
set(PROJECT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/includes")
CONFIGURE_FILE (
"${PROJECT_INCLUDE_DIR}/ldmicroVC.h.in"
"${PROJECT_INCLUDE_DIR}/ldmicroVC.h"
)
- MESSAGE ( STATUS " PROJECT_INCLUDE_DIR: " ${PROJECT_INCLUDE_DIR} )
+ # MESSAGE ( STATUS " PROJECT_INCLUDE_DIR: " ${PROJECT_INCLUDE_DIR} )
- # Add GTK3 include files if GTK3 is found
+ ## Add GTK3 include files if GTK3 is found
IF ( GTK3_FOUND )
include_directories (${GTK3_INCLUDE_DIRS})
link_directories (${GTK3_LIBRARY_DIRS})
add_definitions (${GTK3_CFLAGS_OTHER})
link_libraries (${GTK3_LIBRARIES})
- MESSAGE ( STATUS " GTK3_INCLUDE_DIR: " ${GTK3_INCLUDE_DIRS} )
- MESSAGE ( STATUS " GTK3_LIBRARIES: " ${GTK3_LIBRARIES} )
+ # MESSAGE( STATUS " GTK3_INCLUDE_DIR: " ${GTK3_INCLUDE_DIRS} )
+ # MESSAGE( STATUS " GTK3_LIBRARIES: " ${GTK3_LIBRARIES} )
ENDIF ( GTK3_FOUND )
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/lib/linuxUI")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/lib/freezeLD")
## Dummy compile and install to test linuxUI
## to compile LDmicro uncomment the below 2 line2
- set (COMPILE_CPP_SOURCES #naminglist.cpp
- #arduino.cpp
- #avr.cpp
- #pic16.cpp
- #interpreted.cpp
- #ansic.cpp
- #compilecommon.cpp
- #intcode.cpp
- #lang.cpp
- #miscutil.cpp
- #iolist.cpp
- #confdialog.cpp
- #lutdialog.cpp
- #resetdialog.cpp
- #simpledialog.cpp
- #coildialog.cpp
- #contactsdialog.cpp
- #commentdialog.cpp
+ set (COMPILE_CPP_SOURCES arduino.cpp
+ avr.cpp
+ pic16.cpp
+ interpreted.cpp
+ ansic.cpp
+ compilecommon.cpp
+ intcode.cpp
+ lang.cpp
+ miscutil.cpp
+ iolist.cpp
+ confdialog.cpp
+ lutdialog.cpp
+ resetdialog.cpp
+ simpledialog.cpp
+ coildialog.cpp
+ contactsdialog.cpp
+ commentdialog.cpp
simulate.cpp
- #loadsave.cpp
- #undoredo.cpp
- #circuit.cpp
- #draw_outputdev.cpp
- #draw.cpp
- #schematic.cpp
- #helpdialog.cpp
+ loadsave.cpp
+ undoredo.cpp
+ circuit.cpp
+ draw_outputdev.cpp
+ draw.cpp
+ schematic.cpp
+ ${OBJDIR}/helptext.cpp
+ helpdialog.cpp
maincontrols.cpp
ldmicro.cpp)
+ ## Build main LDMicro executable
add_executable (LDMicro ${COMPILE_CPP_SOURCES})
+ add_dependencies(LDMicro LDMicro_SCRIPT_GENERATED_FILES)
install (TARGETS LDMicro DESTINATION bin)
target_link_libraries (LDMicro LinuxUI)
target_link_libraries (LDMicro FreezeLD)
+
+ ## Build *.int interpreter
+ add_executable (ldinterpret ldinterpret.c)
+ target_link_libraries (ldinterpret LinuxUI)
+
#add_executable (testMain testMain.cpp)
#install (TARGETS testMain DESTINATION bin)
#target_link_libraries (testMain LinuxUI)