Hi!



I have been using CMake for quite some time now, but there are a few things I 
don’t understand or I just don’t know how to accomplish.


1) Some time ago I posted about Unicode paths inside generated project files do 
not work properly. The issue has been fixed. Though this issue is only a 
cosmetic one, when I genetate anything with CMake under such a path I see


-- Build files have been written to: 
C:/Users/MßtÚFerenc/OneDrive/Develop/Active/GridRipper/VS2013


in the command line, where the actual path should contain “MátéFerenc”. I don’t 
know if the displayed string internally is stored this way, or the encoding 
gets messed at the very last moment when printed to the console. Inspecting 
which is the case might uncover some bugs.


2) For some reason Visual Studio does not find certain files it should. This 
might not even be a CMake bug, but related to Visual Studio, although there 
might be someone on the list that knows the solution to the problem. #include 
<> paths are set up by CMake seemingly correctly by using absolute paths. I have


set (CMAKE_USE_RELATIVE_PATHS “true”)


option set, and inside my projects I have statements such as


include_directories (${PROJECT_SOURCE_DIR}/inc/)
include_directories (${Gripper_ADDITIONAL_INCLUDE_DIRS})


at other places I use


include_directories ("${PROJECT_SOURCE_DIR}/inc/")
include_directories (${Gripper_ADDITIONAL_INCLUDE_DIRS})


Both seem to work (though I would be curious which is the better one), even the 
generated project file seems right, in which I can see parts that read


<AdditionalIncludeDirectories>C:\GridRipper\tests\STL-Test4-Plotter\inc;C:\GridRipper\Gripper\inc;C:\Kellekek\GSL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>


So indeed my project correctly sets it’s own include dir and that of the 
libraries that it will link (plus GSL as a dependancy. The application compiles 
fine, intellisense parses the files properly, however when I right click inside 
the IDE, and say Open File, it brings up a dialog saying it cannot find the 
file. It lists all the directories it is looking inside, and none of the 
AdditionalIncludeDirectories entries are among the paths it is trying to find 
the file.


Why is this? Is this a bug in CMake or VS messes up something?


3) How can I create a makefile that forces a certain platform toolset to be 
used? I have seen in a Makefile of another project that


set(CMAKE_GENERATOR_TOOLSET "CTP_Nov2013" CACHE STRING "Platform Toolset" 
FORCE) 
set(CMAKE_VS_PLATFORM_TOOLSET "CTP_Nov2013" CACHE STRING "Platform Toolset" 
FORCE)


should do the trick, however for the initial makefile/project generation, this 
does not work. I issue the command


cmake -G"Visual Studio 12 2013 Win64" -DBUILD_EXAMPLES:BOOL=ON 
-DBUILD_TESTS:BOOL=ON ..\


but all projects use the regular vs120 platform toolset. If I immediately issue


cmake ..\


after this, then everything will go as expected. What is the canonical way of 
obtaining a 64-bit project file with a given toolset without having to do 
multipass generation? My project uses automatic return type deduction, thus I 
need the CTP_Nov2013 toolset, otherwise my app won’t compile.




Thanks in advance,

Máté
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to