diff options
Diffstat (limited to 'ldmicro/CMakeLists.txt')
-rw-r--r-- | ldmicro/CMakeLists.txt | 114 |
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) |