[CMake] MSVC10 project error

J Decker d3ck0r at gmail.com
Tue Sep 7 04:09:33 EDT 2010


-------
PROJECT( basename.stop )
set( ${SOURCES} )
add_executable(${PROJECT_NAME} ${SOURCES})


just building a windows exectuable with a . in the name...

  $(TargetFileName)=basename.exe
  $(TargetName)=basename
  $(TargetExt)=.exe


that is without overriding SUFFIX.    the '.stop' is dropped from the
desired target filename 'basename.stop.exe'



To recap
--------
    add_library( basename.feature.group SHARED whatever.c )
    SET_TARGET_PROPERTIES( basename.feature.group PROPERTIES
                   SUFFIX ""
                   PREFIX ""
    )

results in 'basename.dll' being produced  (drops .feature.group)

--------
    add_library( basename_feature_group SHARED whatever.c )
    SET_TARGET_PROPERTIES( basename.feature.group PROPERTIES
                   SUFFIX ""
                   PREFIX ""
    )

results in 'basename_feature_group.dll'

-----------
    add_library( basename_feature.group SHARED whatever.c )
    SET_TARGET_PROPERTIES( basename_feature.group PROPERTIES
                   SUFFIX ""
                   PREFIX ""
    )

results in 'basename_feature.group' being produced  (correct)



results in 'basename.dll' being produced

On Tue, Sep 7, 2010 at 12:48 AM, J Decker <d3ck0r at gmail.com> wrote:
> On Tue, Sep 7, 2010 at 12:29 AM, J Decker <d3ck0r at gmail.com> wrote:
>> The sample CMakeLists.txt  (requires a blank 'whatever.c' file)
>> -------------
>> cmake_minimum_required(VERSION 2.8)
>>
>
> Same sceneario but instead specify a flat name with '-'
>
>    add_library( bag-service-external SHARED whatever.c )
>    SET_TARGET_PROPERTIES( bag-service-external PROPERTIES
>                   SUFFIX ""
>                   PREFIX ""
>    )
>
>>
>> ------------
>>
>> the configuration of link library target is...
>>
>> $(OutDir)$(TargetName)$(TargetExt)
>>
>> When I click edit, and check the macros
>>
>> $(OutDir)=(somewhere, doesn't matter)
>
>  $(TargetFileName)=bag-service-external
>  $(TargetName)=bag-service-external
>  $(TargetExt)=.dll
>
>
> So the resulting filename has .dll appended to it.
>
>>
>>
>> .............
>>
>> can probably work around by replacing a '.' in the target name with
>> something else.
>>
>
> actually the correct result requires a single . in the filename,
> neither projects with no . or with multiple . works.
>


More information about the CMake mailing list