Skip to content

Instantly share code, notes, and snippets.

@MambaWong
MambaWong / uni_init.cpp
Created September 23, 2017 10:17 — forked from ashwin/uni_init.cpp
Examples of uniform initialization syntax in C++
#include <iostream>
#include <stack>
#include <unordered_set>
#include <vector>
class Point
{
public:
int x;
int y;
http://mirrors.163.com/cygwin/
@MambaWong
MambaWong / checklist.txt
Last active May 12, 2016 01:36
check if a list has at least 2 elements(regex matches)
# check if a list has at least 2 elements(regex matches)
cmake_minimum_required(VERSION 3.3)
macro(test)
set(var ${ARGN})
if(var MATCHES ";")
message(${ARGN} ": YES")
else()
message(${ARGN} ": NO")
@MambaWong
MambaWong / CMakeSnippets.txt
Last active May 11, 2016 13:26
CMake Snippets
'.source.cmake':
'File(Glob …)':
'prefix': 'glob'
'body': 'FILE(GLOB${1:_RECURSE} ${2:VAR} ${3:src/*.cc})'
'foreach … endforeach':
'prefix': 'for'
'body': 'foreach(${1:VAR} ${2:items})\n\t$0\nendforeach()'
'function … endfunction':
'prefix': 'fun'
'body': 'function(${1:FUNCTION_NAME}${2/(.+)/(?1: )/}${2:arg1})\n\t$0\nendfunction()'
@MambaWong
MambaWong / CMakeLists.txt
Created May 1, 2016 00:39 — forked from socantre/CMakeLists.txt
Example of using add_custom_command and add_custom_target together in CMake to handle custom build steps with minimal rebuilding: This example untars library headers for an INTERFACE library target
set(LIBFOO_TAR_HEADERS
"${CMAKE_CURRENT_BINARY_DIR}/include/foo/foo.h"
"${CMAKE_CURRENT_BINARY_DIR}/include/foo/foo_utils.h"
)
add_custom_command(OUTPUT ${LIBFOO_TAR_HEADERS}
COMMAND ${CMAKE_COMMAND} -E tar xzf "${CMAKE_CURRENT_SOURCE_DIR}/libfoo/foo.tar"
COMMAND ${CMAKE_COMMAND} -E touch ${LIBFOO_TAR_HEADERS}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include/foo"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/libfoo/foo.tar"
@MambaWong
MambaWong / function-argument.cmake
Created April 30, 2016 14:59 — forked from antiagainst/function-argument.cmake
ARGC, ARGV, ARGN, ARGVn in CMake
cmake_minimum_required(VERSION 2.8)
function(use_llvm TARGET)
message("ARGC=\"${ARGC}\"")
message("ARGN=\"${ARGN}\"")
message("ARGV=\"${ARGV}\"")
message("ARGV0=\"${ARGV0}\"")
message("ARGV1=\"${ARGV1}\"")
endfunction()