Çözüldü cmake nedir, nasıl geçilir? avantajları, dezavantajları nelerdir?

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

hasanmacit

dc: hasanmacit
Site yetkilisi
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
3.096
Çözümler
98
Beğeni
2.364
Puan
1.840
Ticaret Puanı
2
bilen arkadaşlar yorumlarda cmake ile olan tecrübelerini anlatabilirler mi ? gcc ye karşı avantajı nedir ? dezavantajı nedir ? srcyi cmakeye nasıl uyarlarız ? ve genel olarak cmake nedir ?
 
Çözüm
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış...
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış olabilir.
Örnek CmakeLists.txt:
cmake_minimum_required(VERSION 3.0.0)
project(cpp_aes VERSION 0.1.0)

include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/library)

include(CTest)
enable_testing()

add_executable(cpp_aes main.cpp)
add_library(cpp_aes_lib aes_lib.cpp)


target_link_libraries(cpp_aes cryptopp cpp_aes_lib)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
 
Çözüm
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış olabilir.
Örnek CmakeLists.txt:
cmake_minimum_required(VERSION 3.0.0)
project(cpp_aes VERSION 0.1.0)

include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/library)

include(CTest)
enable_testing()

add_executable(cpp_aes main.cpp)
add_library(cpp_aes_lib aes_lib.cpp)


target_link_libraries(cpp_aes cryptopp cpp_aes_lib)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
peki iki sorum var bunu standart sflere nasıl uygularız ve vscode ya da visual ile normal build ettiğimiz gibi game dosyası alabilir miyiz ?
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst