Ghasem Ramezani(My opinions aren't mine)

A C++ jerk who is living with his beautiful ThinkPad
Contents:

#Resume(back to )

PDF File(GhasemRamezani.pdf)


#Public Projects(back to )

Contents:

#CMake Template(back to )

Configuring CMake properly can be challenging. Here are some of my frequently used configurations that may help:
  1. #Executables: This configuration helps you to set up an executable target with RPATH defined as $ORIGIN/lib -> $ORIGIN/../lib -> $ORIGIN, and all the required config files for find_package are exported including ConfigVersion.cmake.
  2. #SharedLibrary: This setup will assist you in creating a target that is fully versioned. With this you can install multi-version of the same library in your system.
  3. #FetchContents: Two code snippet for fetching Google Benchmark and Google Test.
  4. #QtCreatorPlainCpp: Template for Qt Creator project.

#CMake Common(back to )

Here are some of the utility functions that make life easier:
  1. #Core_Utility_FethQMakeContent: Using this module you can clone/patch/build QMake projects at the CMake Configuration time.
    Example:
    
    	  include(CMakeCommon)
    
    	  Core_Utility_FetchQMakeContents(
                GIT_REPOSITORY https://github.com/SMR76/knight-pen.git
                QMAKE_CONFIG_DIRECTORY src/knight-pen
                APPLY_PATCH ${CMAKE_CURRENT_SOURCE_DIR}/Knight-pen.diff
    	  )
    	
  2. #Core_Details_FetchQMakeContents_ConfigureQMake: Executes qmake -project and qmake -makefile on the input.
  3. #Core_Details_FetchQMakeContents_BuildQMake: Executes make -j on build_dir.
  4. #Core_Details_FetchQMakeContents_InstallQMake: Executes make install on build_dir.
  5. #Core_Utility_CloneRepository: This is a helper function for cloning the GIT repositories.
  6. #Core_Details_Git_Clone: Low level function for cloning repositories.
  7. #Core_Details_Git_Pull: Uses git specified by binary to perform a git pull on output.
  8. #Core_Details_Git_Update_Submodules: Updates all the submodules recursivly using binary path for git in output directory.
  9. #Core_Details_Git_Reset: Performs a git reset -- at output with binary git binary file.
  10. #Core_Details_Git_Apply: Applying a patch file refered by patch_file in output directory using binary file.
  11. #Core_Utility_GetRepoName: Take a url ended with .git and returns the repository name in repo_name using a regex.

#Examples(back to )

Here are some simple examples of C++ programming language.

#The Client UI Showcase(back to )

A simple template for my stupid QWidget projects.

#CMake Course(back to )

Contents:

#C++ Roadmap(back to )

  1. Learn CS from CS101++
  2. Learn Modern C++ from LearnC++
  3. Learn Concurrency from "C++ Concurrency in Action", Anthony Williams, 2th Edition
    • Read up to Chapter 5: Memory Model
  4. Learn Template and Metaprogramming from "C++ Templates: The Complete Guide"
    • Only read the Basics
  5. Learn CMake from my course CMake Intro
  6. Learn Git from Jadi
  7. Checkout the awesome git repository for beginners in open source contribuions


























Me Why doesn't it end?