Changeset 1949 for cmake


Ignore:
Timestamp:
Jan 26, 2017, 9:47:27 AM (8 years ago)
Author:
Silvan Scherrer
Message:

cmake: adjust def file generation

Location:
cmake/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified cmake/trunk/Modules/Platform/os2.cmake

    r1939 r1949  
    8585  "<CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_MODULE_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
    8686
    87 # Init the buildlevel settings, if not set in the main CMakeList.txt.
    88 # To enable them in the main CMakeList.txt use the below snippet as a reference.
     87# When setting the below properties in the CMakeList.txt, a nice buildlevel
     88# string is written to the exe or the dll. If the properties are not set,
     89# the settings are filled with defaults.
     90# To enable them in the CMakeList.txt use the below snippet as a reference.
    8991# If there is no VERSION or VERSION_PATCH set in CMakeList.txt, either remove
    9092# this definition, or set it to your liking.
     93# It's important that you add this snippet after the target is created and of
     94# course <TARGET> needs to be changed to the real target
    9195#
    92 #  if(OS2)
    93 #    SET(VERSION_BLDLevel ${VERSION} CACHE TYPE STRING)
    94 #    SET(PATCH_BLDLevel ${VERSION_PATCH} CACHE TYPE STRING)
    95 #    SET(VENDOR_BLDLevel "whoever you are" CACHE TYPE STRING)
    96 #  endif(OS2)
    97 
    98 if(NOT VENDOR_BLDLevel)
    99   SET(VENDOR_BLDLevel "community")
    100 endif(NOT VENDOR_BLDLevel)
    101 
    102 if(NOT VERSION_BLDLevel)
    103   SET(VERSION_BLDLevel "0")
    104 endif(NOT VERSION_BLDLevel)
    105 
    106 if(NOT PATCH_BLDLevel)
    107   SET(PATCH_BLDLevel "0")
    108 endif(NOT PATCH_BLDLevel)
     96# The 2 settings with OS2_DEF_EXE_ are for executables only.
     97# Usually the Stack value is not needed, so omit it please.
     98#
     99# if(OS2)
     100#   set_target_properties(<TARGET> PROPERTIES
     101#    OS2_DEF_VENDOR "whoever you are"
     102#    OS2_DEF_PATCH "${VERSION_PATCH}"
     103#    OS2_DEF_VERSION "${VERSION}"
     104#    OS2_DEF_EXEType "WINDOWAPI"
     105#    OS2_DEF_EXEStack "STACKSIZE 0x8000")
     106# endif()
     107#
    109108
    110109# create the timestamp and build maschine name
     
    114113
    115114SET(CMAKE_C_CREATE_SHARED_LIBRARY
    116   "echo LIBRARY <TARGET_OS2DEF> INITINSTANCE TERMINSTANCE > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#${VENDOR_BLDLevel}:${VERSION_BLDLevel}\#@${bldLevelInfo}::::${PATCH_BLDLevel}::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo DATA MULTIPLE NONSHARED >> <TARGET_BASE>.def && echo EXPORTS >> <TARGET_BASE>.def && emxexp <OBJECTS> >> <TARGET_BASE>.def && <CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES> <TARGET_BASE>.def && emximp -o <TARGET_IMPLIB> <TARGET_BASE>.def")
     115  "echo LIBRARY <OS2_DEF_TARGET> INITINSTANCE TERMINSTANCE > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#<OS2_DEF_VENDOR>:<OS2_DEF_VERSION>\#@${bldLevelInfo}::::<OS2_DEF_PATCH>::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo DATA MULTIPLE NONSHARED >> <TARGET_BASE>.def && echo EXPORTS >> <TARGET_BASE>.def && emxexp <OBJECTS> >> <TARGET_BASE>.def && <CMAKE_C_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES> <TARGET_BASE>.def && emximp -o <TARGET_IMPLIB> <TARGET_BASE>.def")
    117116SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
    118   "echo LIBRARY <TARGET_OS2DEF> INITINSTANCE TERMINSTANCE > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#${VENDOR_BLDLevel}:${VERSION_BLDLevel}\#@${bldLevelInfo}::::${PATCH_BLDLevel}::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo DATA MULTIPLE NONSHARED >> <TARGET_BASE>.def && echo EXPORTS >> <TARGET_BASE>.def && emxexp <OBJECTS> >> <TARGET_BASE>.def && <CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES> <TARGET_BASE>.def && emximp -o <TARGET_IMPLIB> <TARGET_BASE>.def")
     117  "echo LIBRARY <OS2_DEF_TARGET> INITINSTANCE TERMINSTANCE > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#<OS2_DEF_VENDOR>:<OS2_DEF_VERSION>\#@${bldLevelInfo}::::<OS2_DEF_PATCH>::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo DATA MULTIPLE NONSHARED >> <TARGET_BASE>.def && echo EXPORTS >> <TARGET_BASE>.def && emxexp <OBJECTS> >> <TARGET_BASE>.def && <CMAKE_CXX_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES> <TARGET_BASE>.def && emximp -o <TARGET_IMPLIB> <TARGET_BASE>.def")
    119118
    120119SET(CMAKE_C_LINK_EXECUTABLE
    121   "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
     120  "echo NAME <TARGET_NAME> <OS2_DEF_EXEType> > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#<OS2_DEF_VENDOR>:<OS2_DEF_VERSION>\#@${bldLevelInfo}::::<OS2_DEF_PATCH>::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo <OS2_DEF_EXEStack> >> <TARGET_BASE>.def && <CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES> <TARGET_BASE>.def")
    122121SET(CMAKE_CXX_LINK_EXECUTABLE
    123   "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
    124 
     122  "echo NAME <TARGET_NAME> <OS2_DEF_EXEType> > <TARGET_BASE>.def && echo DESCRIPTION \\\"@\#<OS2_DEF_VENDOR>:<OS2_DEF_VERSION>\#@${bldLevelInfo}::::<OS2_DEF_PATCH>::@@<TARGET_NAME>\\\" >> <TARGET_BASE>.def && echo <OS2_DEF_EXEStack> >> <TARGET_BASE>.def && <CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES> <TARGET_BASE>.def")
    125123
    126124# Initialize C link type selection flags.  These flags are used when
  • TabularUnified cmake/trunk/Source/CMakeLists.txt

    r1858 r1949  
    785785target_link_libraries(cmake CMakeLib)
    786786
     787if(OS2)
     788  set_target_properties(cmake PROPERTIES
     789   OS2_DEF_VENDOR "$ENV{VENDOR}"
     790   OS2_DEF_PATCH "${CMake_VERSION_PATCH}"
     791   OS2_DEF_VERSION "${CMake_VERSION}")
     792endif(OS2)
     793
    787794if(CMake_ENABLE_SERVER_MODE)
    788795  add_library(CMakeServerLib
     
    803810target_link_libraries(ctest CTestLib)
    804811
     812if(OS2)
     813  set_target_properties(ctest PROPERTIES
     814   OS2_DEF_VENDOR "$ENV{VENDOR}"
     815   OS2_DEF_PATCH "${CMake_VERSION_PATCH}"
     816   OS2_DEF_VERSION "${CMake_VERSION}")
     817endif(OS2)
     818
    805819# Build CPack executable
    806820add_executable(cpack CPack/cpack.cxx ${MANIFEST_FILE})
     
    808822target_link_libraries(cpack CPackLib)
    809823
     824if(OS2)
     825  set_target_properties(cpack PROPERTIES
     826   OS2_DEF_VENDOR "$ENV{VENDOR}"
     827   OS2_DEF_PATCH "${CMake_VERSION_PATCH}"
     828   OS2_DEF_VERSION "${CMake_VERSION}")
     829endif(OS2)
     830
    810831# Curses GUI
    811832if(BUILD_CursesDialog)
  • TabularUnified cmake/trunk/Source/QtDialog/CMakeLists.txt

    r1853 r1949  
    161161target_link_libraries(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${CMake_QT_LIBRARIES})
    162162
     163if(OS2)
     164  set_target_properties(cmake-gui PROPERTIES
     165   OS2_DEF_VENDOR "$ENV{VENDOR}"
     166   OS2_DEF_PATCH "${CMake_VERSION_PATCH}"
     167   OS2_DEF_VERSION "${CMake_VERSION}"
     168   OS2_DEF_EXEType "WINDOWAPI")
     169endif(OS2)
     170
    163171if(APPLE)
    164172  file(STRINGS "${CMake_SOURCE_DIR}/Copyright.txt" copyright_line
  • TabularUnified cmake/trunk/Source/cmLocalGenerator.cxx

    r1939 r1949  
    648648// this is needed to have the def files created right
    649649    if (replaceValues.Target) {
    650       if (variable == "TARGET_OS2DEF") {
     650      if (variable == "OS2_DEF_TARGET") {
    651651        std::string targetName;
    652652        std::string targetBase;
     
    705705      return cmState::GetTargetTypeName(replaceValues.CMTarget->GetType());
    706706    }
     707#ifdef __OS2__
     708    if (variable == "OS2_DEF_VERSION" || variable == "OS2_DEF_PATCH" ||
     709        variable == "OS2_DEF_VENDOR" || variable == "OS2_DEF_EXEType" ||
     710        variable == "OS2_DEF_EXEStack") {
     711
     712      const char *prop = replaceValues.CMTarget->GetProperty(variable);
     713      if (prop && strlen(prop) > 0)
     714        return prop;
     715
     716// no target property was found: set the defaults
     717      if (variable == "OS2_DEF_VERSION") {
     718        prop = replaceValues.CMTarget->GetProperty("VERSION");
     719        if (prop)
     720          return prop;
     721        return "0.0";
     722      }
     723
     724      if (variable == "OS2_DEF_PATCH")
     725        return "0";
     726      if (variable == "OS2_DEF_VENDOR")
     727        return "cmake build system";
     728
     729// for all others the default is blank
     730      return "";
     731    }
     732#endif
    707733  }
    708734  if (replaceValues.Output) {
Note: See TracChangeset for help on using the changeset viewer.