From 358925ec028bcdb312616ffebf427eda595896cd Mon Sep 17 00:00:00 2001 From: Gulliver Date: Wed, 10 Sep 2014 14:08:44 +0200 Subject: added initial version of cmake build-files --- CMakeLists.txt | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ae057c2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,114 @@ +project(stmd) +cmake_minimum_required(VERSION 2.8) + +set(PROJECT_NAME "stmd") + +set(PROJECT_VERSION_MAJOR 0) +set(PROJECT_VERSION_MINOR 0) +set(PROJECT_VERSION_PATCH 1) +set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} ) + +include (CheckIncludeFile) +CHECK_INCLUDE_FILE (stdbool.h HAVE_STDBOOL_H) + +#option(${PROJECT_NAME}_WITH_DOCS "generate Documentation" OFF) +#option(${PROJECT_NAME}_WITH_TESTS "enable testing" ON) +option(CMAKE_SUPPRESS_REGENERATION "suppress rules to re-run cmake on changes (warning: no dependency checks!)?" OFF) + +if (MSVC) + option(PROJECT_LINK_MSVC_MT "link with /MT instead of /MD (use msvc runtime dlls versus static linked)" ON) + # see http://msdn.microsoft.com/en-us/library/2kzt1wy3%28VS.71%29.aspx + if (PROJECT_LINK_MSVC_MT) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") + endif (PROJECT_LINK_MSVC_MT) + + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W4") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W4") + + set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS UNICODE) + set(CMAKE_FIND_LIBRARY_PREFIXES "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") + set(CMAKE_STATIC_LIBRARY_PREFIX "lib") + set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") + set(CMAKE_SHARED_LIBRARY_PREFIX "") # lib + set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so + set(CMAKE_IMPORT_LIBRARY_PREFIX "") + set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib") + set(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe + set(CMAKE_LINK_LIBRARY_SUFFIX ".lib") + set(CMAKE_DL_LIBS "") + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions(-DUNICODE -D_UNICODE) +else(MSVC) + list(APPEND CMAKE_CXX_FLAGS "-Wall -Wunused-variable -Wno-long-long") + #-pedantic + list(APPEND CMAKE_C_FLAGS "-Wall -Wunused-variable -Wno-long-long") +endif(MSVC) + +# create config.h +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/config.h) + +# set include directories +get_filename_component(CONFIG_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/config.h PATH) +include_directories(include ${CONFIG_INCLUDE}) + +install(DIRECTORY include DESTINATION . + COMPONENT devel + FILES_MATCHING PATTERN "*.h" + PATTERN .svn EXCLUDE + ) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h + DESTINATION include/${PROJECT_NAME} + COMPONENT devel) + +add_subdirectory(src) + +include(InstallRequiredSystemLibraries) + +set(CPACK_GENERATOR TGZ ZIP) +if(WIN32 AND NOT CYGWIN) + set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR}) +endif(WIN32 AND NOT CYGWIN) +if(APPLE) + set(CPACK_GENERATOR DragNDrop ${CPACK_GENERATOR}) +endif(APPLE) +if (UNIX AND NOT APPLE AND NOT WIN32) + set(CPACK_GENERATOR DEB ${CPACK_GENERATOR}) +endif (UNIX AND NOT APPLE AND NOT WIN32) + +set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PROJECT_NAME}-src-${PROJECT_VERSION}) +set(CPACK_SOURCE_GENERATOR TGZ ZIP) +set(CPACK_PACKAGE_CONTACT gulliver@users.sourceforge.net) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME}) +set(CPACK_PACKAGE_VENDOR "${PROJECT_NAME} Development Team") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}") +set(CPACK_SOURCE_IGNORE_FILES "/docs/html;/autom4te.cache;/build/;/win32/;/.svn/;~$;${CPACK_SOURCE_IGNORE_FILES}") + +if(WIN32 AND NOT UNIX) + set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}\\\\${PROJECT_VERSION}") + # There is a bug in NSI that does not handle full unix paths properly. Make + # sure there is at least one set of four (4) backlasshes. + # set(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") + set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\${PROJECT_NAME}.exe") + set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}") + set(CPACK_NSIS_HELP_LINK "http://softwareschmied.net/") + set(CPACK_NSIS_URL_INFO_ABOUT "http://softwareschmied.net/") + set(CPACK_NSIS_CONTACT "gulliver@softwareschmied.net") + set(CPACK_NSIS_MODIFY_PATH ON) + set(CPACK_NSIS_MENU_LINKS "doc/html/index.html;Documentation") +else(WIN32 AND NOT UNIX) + set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}/${PROJECT_VERSION}") + set(CPACK_STRIP_FILES "bin/${PROJECT_NAME}") + set(CPACK_SOURCE_STRIP_FILES "") +endif(WIN32 AND NOT UNIX) +set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME};${PROJECT_NAME}) +include(CPack) -- cgit v1.2.3 From 0a40eea051e5b61c954f32025df21a475b0ee111 Mon Sep 17 00:00:00 2001 From: Gulliver Date: Wed, 10 Sep 2014 17:24:27 +0200 Subject: added scanner.c to sources and special rule for it to build it from scanner.re (added setting RE2C which contains the path to needed re2c utilitity) --- CMakeLists.txt | 1 + src/CMakeLists.txt | 55 ++++++++++++++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 22 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index ae057c2..905e17d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ CHECK_INCLUDE_FILE (stdbool.h HAVE_STDBOOL_H) #option(${PROJECT_NAME}_WITH_DOCS "generate Documentation" OFF) #option(${PROJECT_NAME}_WITH_TESTS "enable testing" ON) option(CMAKE_SUPPRESS_REGENERATION "suppress rules to re-run cmake on changes (warning: no dependency checks!)?" OFF) +set(RE2C ${CMAKE_CURRENT_SOURCE_DIR}/re2c) if (MSVC) option(PROJECT_LINK_MSVC_MT "link with /MT instead of /MD (use msvc runtime dlls versus static linked)" ON) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c454eca..35de787 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,33 +1,44 @@ set(PROGRAM_stmd "stmd") -set(PROGRAM_stmd_SOURCES blocks.c -inlines.c -main.c -debug.h -detab.c -bstrlib.c -bstrlib.h -getopt.c -html.c - - -print.c -scanners.h -scanners.re -stmd.h -utf8.c -utf8.h -uthash.h +set(PROGRAM_stmd_SOURCES blocks.c + inlines.c + main.c + debug.h + detab.c + bstrlib.c + bstrlib.h + getopt.c + html.c + print.c + scanners.h + scanners.c + scanners.re + stmd.h + utf8.c + utf8.h + uthash.h ) +if (MSVC) + file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} DOS_CURRENT_SOURCE_DIR) + add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/scanners.c + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scanners.re + COMMAND ${RE2C} --case-insensitive -b -i ${DOS_CURRENT_SOURCE_DIR}\\scanners.re >${DOS_CURRENT_SOURCE_DIR}\\scanners.c) +else(MSVC) + add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/scanners.c + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scanners.re + COMMAND ${RE2C} --case-insensitive -b -i ${CMAKE_CURRENT_SOURCE_DIR}/scanners.re >${CMAKE_CURRENT_SOURCE_DIR}/scanners.c) +endif(MSVC) + add_executable(${PROGRAM_stmd} ${PROGRAM_stmd_SOURCES}) if (MSVC) -set_property(TARGET ${PROGRAM_chronolog} - APPEND PROPERTY LINK_FLAGS /INCREMENTAL:NO) -target_link_libraries(${PROGRAM_chronolog} gdiplus.lib) +set_property(TARGET PROGRAM_stmd + APPEND PROPERTY LINK_FLAGS /INCREMENTAL:NO) +# if sometimes libs are needed ... +#target_link_libraries(${PROGRAM_chronolog}) endif(MSVC) -install(TARGETS ${PROGRAM_chronolog} +install(TARGETS PROGRAM_stmd RUNTIME DESTINATION bin BUNDLE DESTINATION Applications) -- cgit v1.2.3 From 63b41dd05b1fcbef10d41e28cef1645ee8b6642d Mon Sep 17 00:00:00 2001 From: Gulliver Date: Thu, 11 Sep 2014 16:47:09 +0200 Subject: corrections for OSX and *NIX --- CMakeLists.txt | 6 +++++- release_it.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100755 release_it.sh (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 905e17d..491645c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,11 @@ CHECK_INCLUDE_FILE (stdbool.h HAVE_STDBOOL_H) #option(${PROJECT_NAME}_WITH_DOCS "generate Documentation" OFF) #option(${PROJECT_NAME}_WITH_TESTS "enable testing" ON) option(CMAKE_SUPPRESS_REGENERATION "suppress rules to re-run cmake on changes (warning: no dependency checks!)?" OFF) -set(RE2C ${CMAKE_CURRENT_SOURCE_DIR}/re2c) +if (MSVC) + set(RE2C ${CMAKE_CURRENT_SOURCE_DIR}/re2c) +else(MSVC) + set(RE2C re2c) +endif(MSVC) if (MSVC) option(PROJECT_LINK_MSVC_MT "link with /MT instead of /MD (use msvc runtime dlls versus static linked)" ON) diff --git a/release_it.sh b/release_it.sh new file mode 100755 index 0000000..b83772a --- /dev/null +++ b/release_it.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +HOST_SYSTEM=`uname -s` +HOST_ARCH=`uname -m` +STARTDIR=`pwd` + +CMAKE_BUILDDIR=build/$HOST_ARCH-$HOST_SYSTEM + +mkdir -p $CMAKE_BUILDDIR + +cd $CMAKE_BUILDDIR + +if test $HOST_SYSTEM = "Darwin" ; then + cmake -DChronolog_WITH_DOCS:bool=ON \ + -DChronolog_WITH_TESTS:bool=ON \ + -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk \ + $STARTDIR; + cd $STARTDIR + + mkdir -p build/Xcode + cd build/Xcode + cmake -DChronolog_WITH_DOCS:bool=ON \ + -DChronolog_WITH_TESTS:bool=ON \ + -DCXXTEST_INCLUDE_DIR=3rdparty/cxxtest \ + -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk \ + -G Xcode $STARTDIR; + cd $STARTDIR + +elif test $HOST_SYSTEM = "Linux" ; then + cmake -DChronolog_WITH_DOCS:bool=ON \ + -DChronolog_WITH_TESTS:bool=ON \ + $STARTDIR; +else + echo "not supported"; +fi + +cd $CMAKE_BUILDDIR +cpack --config CPackSourceConfig.cmake +cmake --build . --target all --target test --target package +cmake --build . --target package_source +cd $STARTDIR + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 35de787..01a2bf7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -38,7 +38,7 @@ set_property(TARGET PROGRAM_stmd # if sometimes libs are needed ... #target_link_libraries(${PROGRAM_chronolog}) endif(MSVC) -install(TARGETS PROGRAM_stmd +install(TARGETS ${PROGRAM_stmd} RUNTIME DESTINATION bin BUNDLE DESTINATION Applications) -- cgit v1.2.3 From d8f7c132779f62837c5dc36a0e9f327c8c3f90a3 Mon Sep 17 00:00:00 2001 From: Gulliver Date: Thu, 11 Sep 2014 20:31:20 +0200 Subject: urls used in packages changed to common mark.org --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 491645c..b19d98f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ endif (UNIX AND NOT APPLE AND NOT WIN32) set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PROJECT_NAME}-src-${PROJECT_VERSION}) set(CPACK_SOURCE_GENERATOR TGZ ZIP) -set(CPACK_PACKAGE_CONTACT gulliver@users.sourceforge.net) +set(CPACK_PACKAGE_CONTACT http://talk.commonmark.org/) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME}) set(CPACK_PACKAGE_VENDOR "${PROJECT_NAME} Development Team") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") @@ -101,13 +101,13 @@ set(CPACK_SOURCE_IGNORE_FILES "/docs/html;/autom4te.cache;/build/;/win32/;/.svn/ if(WIN32 AND NOT UNIX) set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}\\\\${PROJECT_VERSION}") # There is a bug in NSI that does not handle full unix paths properly. Make - # sure there is at least one set of four (4) backlasshes. + # sure there is at least one set of four (4) backlashes. # set(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\${PROJECT_NAME}.exe") set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}") - set(CPACK_NSIS_HELP_LINK "http://softwareschmied.net/") - set(CPACK_NSIS_URL_INFO_ABOUT "http://softwareschmied.net/") - set(CPACK_NSIS_CONTACT "gulliver@softwareschmied.net") + set(CPACK_NSIS_HELP_LINK "http://commonmark.org/") + set(CPACK_NSIS_URL_INFO_ABOUT "http://commonmark.org/") + set(CPACK_NSIS_CONTACT "http://talk.commonmark.org/") set(CPACK_NSIS_MODIFY_PATH ON) set(CPACK_NSIS_MENU_LINKS "doc/html/index.html;Documentation") else(WIN32 AND NOT UNIX) -- cgit v1.2.3